基于主键

时间:2017-07-24 11:40:42

标签: mysql sql

ID列设置为主键,自动增量。

我想要第二列项目编号,是否可以在SQL中设置这样的内容?或者我该怎么做?

ID:1 projectnumber:Project001

ID:2 projectnumber:Project002

ID:n projectnumber:Project00n

1 个答案:

答案 0 :(得分:0)

你可以用两种方式做到这一点:

使用触发器或从数据库中检索记录时执行此操作:

触发:插入后

CREATE TRIGGER `yourtable_after_insert` AFTER INSERT ON `yourtable` FOR EACH ROW BEGIN
    UPDATE yourtable
     SET projectnumber = CONCAT('project', NEW.id) 
     WHERE id = NEW.id;
END;

或 只是在你的选择查询中做那个CONCAT的事情,甚至在php的逻辑中做得更好。考虑您想要翻译您的应用程序的可能性。你也会存储重复的信息......

如下所述:NEW.id不起作用。 所以请改用LAST_INSERT_ID():

CREATE TRIGGER `yourtable_after_insert` AFTER INSERT ON `yourtable` 
FOR EACH ROW BEGIN
    UPDATE yourtable
     SET projectnumber = CONCAT('project', LAST_INSERT_ID()) 
     WHERE id = LAST_INSERT_ID();
END;

但仍然是:它会重复内容