Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 自动计算非标准自动增量_Sql_Mysql_Triggers - Fatal编程技术网

Sql 自动计算非标准自动增量

Sql 自动计算非标准自动增量,sql,mysql,triggers,Sql,Mysql,Triggers,我正在使用的表没有一个标准的自动递增字段用作主键,因此我需要想出一种方法来自动计算应该在字段中使用的值 我的第一个想法是在INSERT之后创建一个触发器,但是,据我所知,没有简单的方法来引用刚刚插入的行。我可以做类似的事情 UPDATE `table` SET `reference_number` = (SELECT ....) WHERE `reference_number` IS NULL 但由于参考号是主键,因此不能为空。(这是否意味着它将是一个空字符串 有更好的方法吗?为什么它没有一个

我正在使用的表没有一个标准的自动递增字段用作主键,因此我需要想出一种方法来自动计算应该在字段中使用的值

我的第一个想法是在INSERT之后创建一个触发器
,但是,据我所知,没有简单的方法来引用刚刚插入的行。我可以做类似的事情

UPDATE `table` SET `reference_number` = (SELECT ....) WHERE `reference_number` IS NULL
但由于
参考号
主键
,因此不能为空。(这是否意味着它将是一个空字符串


有更好的方法吗?

为什么它没有一个标准的自动递增字段用作主键?@Col.Shrapnel:因为它是在我参与项目之前设计的;-)因为它是由两个独立的大学生团队设计的,他们没有任何数据库经验?为什么它没有一个标准的自动递增字段用作主键?@Col.Shrapnel:因为它是在我参与该项目之前设计的;-)因为它是由两个独立的大学生团队设计的,他们以前没有数据库经验?
CREATE TRIGGER mkuuid BEFORE INSERT ON SomeTable
 FOR EACH ROW BEGIN
   SET NEW.primary_key = UUID_SHORT();
 END