ID列设置为主键,自动递增。基于主键的SQL列名称
我想要第二列项目号,是否可以在SQL中设置这样的东西?或者我应该怎么做?
ID:1 projectnumber:Project001
ID:2 projectnumber:Project002
。
。
。
ID:N projectnumber:Project00n
ID列设置为主键,自动递增。基于主键的SQL列名称
我想要第二列项目号,是否可以在SQL中设置这样的东西?或者我应该怎么做?
ID:1 projectnumber:Project001
ID:2 projectnumber:Project002
。
。
。
ID:N projectnumber:Project00n
你能做到这在两个方面:
或者使用触发器或做从数据库中检索记录时:
触发器:插入
后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;
但还是:这将是重复的内容
你甚至都不需要有柱,只是格式化此当你拉出来的数据,当你显示它在应用程序中。你所做的只是复制字符串“Project”并在标题旁边添加一个数字 - 这样浪费空间就非常非常不重要。 – Mjh
听起来像是一个计算列:请参阅https://stackoverflow.com/questions/5222044/column-calculated-from-another-column – aschoerk
MySQL 5.7您可以使用生成的列(GENERATED ALWAYS) –