我希望一列默认为GUID,因此,如果我正在执行插入操作且未明确设置该值,则希望将其默认为新的GUID值。
我怎样才能做到这一点?
由于UUID()不被接受为DEFAULT约束,因此您需要使用触发器。
这将设置NEW_TABLE.uuid
列的值:
delimiter $$
CREATE
DEFINER=`root`@`localhost`
TRIGGER `example`.`newid`
BEFORE INSERT ON `example`.`new_table`
FOR EACH ROW
BEGIN
SET NEW.`uuid` = UUID();
END
$$
问题内容: 我有以下SQL命令: 我希望能够使该列唯一,并且我希望它能够在每次向表中添加一行时生成一个新的guid。此列不是IDENTITY列,因为我已经有一个。这是分开的东西。我将如何将该列添加到已经有用户的表中。 问题答案: 看到这个例子: 要在填充的表格上添加一个非null字段,您需要这样做。
问题内容: 如何将列的默认值从“无”更改为其他值?例如,如果我在创建行时未指定日期,则希望我的日期的默认值是0000-00-00。 我在phpMyAdmin中了解这一点,但是我不确定如何通过命令提示符来做到这一点。 我也了解在添加列时如何执行此操作。但是,我所有的列均已制成,并且其中一些包含数据。 通过搜索,我找到了这条线,但是我不确定那是我想要的吗? 问题答案: 使用 ALTER TABLE 来
问题内容: 如果没有在产品表的描述列中输入任何值,则默认情况下,我希望它等于在product_name列中的值。我尝试了如下操作,但没有成功。这可能吗? 问题答案: 常见的解决方案是创建一个用于显示数据的视图。在视图中,您可以计算描述。像这样
问题内容: 我有一个表,其中的列类型为默认值,每次更新都更新为。 我想删除此列上的“更新时”功能。如何编写alter语句? 我尝试了以下方法: 但这没用。 问题答案: 皮特几乎是正确的,但对“更改”使用了错误的语法: 请注意,您必须重复列名。另外,请确保您使用反引号而不是单引号来转义列名时间,以防止将其解释为mysql列时间类型。 通过指定CURRENT_TIMESTAMP的默认值,MySQL将不
问题内容: 我的数据库是MySql 5.6。 我想使用CURRENT_TIMESTAMP作为类型为TIMESTAMP(3)的属性的默认值。 但是我得到了错误: 错误1067(42000):“更新”的默认值无效 我认为是因为仅以秒为单位。 如何将小数部分的当前时间设置为默认值? 问题答案: 根据文档并输入列: 如果或列定义在任何地方都包含显式的小数秒精度值,则在整个列定义中必须使用相同的值。 这是允
主要内容:在创建表时设置默认值约束,在修改表时添加默认值约束,删除默认值约束默认值(Default)的完整称呼是“默认值约束(Default Constraint)”,用来指定某列的默认值。在表中插入一条新记录时,如果没有为某个字段赋值,系统就会自动为这个字段插入默认值。 例如,员工信息表中,部门位置在北京的较多,那么部门位置就可以默认为“北京”,系统就会自动为这个字段赋值为“北京”。 默认值约束通常用在已经设置了非空约束的列,这样能够防止数据表在录入数据时出现错误。 在