如何在MySQL中创建自定义主键?例如我有表,表名是X,我有一个表字段ID、Code、Name。
我担心如果我有1000个用户,当他们一起输入时,就会造成破坏。
我想:
INSERT INTO `X` (`ID`,`Code`,`Name`) VALUES
('P3K','Alex'), // this primary key is "P3K-1"
('SOS','Force'), // this primary key is "SOS-1"
('P3K','Bash'), // this primary key is "P3K-2"现在,我对此使用触发器(插入前),如下所示:
SET NEW.`ID` = CONCAT(NEW.`Code`,'-',IFNULL(SUBSTRING_INDEX((
SELECT `x`.`Code` FROM `X` WHERE
X.`Code` = NEW.`Code` and
ORDER BY X.`Code` DESC
LIMIT 1 ),'-',-1),0) + 1))我没有尝试这段代码,但我的重点是:
CODE和Number。我是不是被误导了?LOL,如果是真的,如何创建这样的一个?(我想)我们可以做到这一点,也许没人知道这一点,MySQL中的人工智能是如何工作得如此完美?
发布于 2017-09-28 14:53:23
不要使auto_increment成为您想要显式操作的任何列。这可能会混淆发动机和造成严重的问题。如果没有用于主键的列是auto_increment,则可以通过触发器对它们执行任何您想要的操作。如果生成的值违反主键的强制唯一性,则将拒绝它们。
https://dba.stackexchange.com/questions/187162
复制相似问题