【发布时间】:2014-01-26 13:39:14
【问题描述】:
我创建了一个触发器来帮助我在插入行时创建主键。我想获得我刚刚插入的主键。但是因为主键不是 auto_increment 我不能使用
SELECT LAST_INSERT_ID();
那么我怎样才能得到主键呢?
这里是触发器
CREATE TRIGGER before_insert_user_info
BEFORE INSERT ON USER_INFO
FOR EACH ROW
SET new.uID = CONCAT('U', ((SELECT MAX(CAST(SUBSTRING(uID, 2, length(uID)) AS UNSIGNED)) FROM USER_INFO)+1));
这是插入
INSERT INTO USER_INFO(name) VALUES ('Peter');
【问题讨论】:
-
只能在AUTO_INCREMENT中使用,但我的主键不是AUTO_INCREMENT。
-
能否提供插入触发器的代码示例?
-
你可以使用“SELECT MAX(uID) FROM USER_INFO”
-
在你的触发器中,只有为null的时候才设置值,需要id的时候自己生成。
标签: mysql triggers phpmyadmin