0
如何在MySQL中创建自定义主键?例如我有表和表名是X
,我有一个表字段为ID
,Code
,Name
。自定义MySQL中的主键
恐怕如果我有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"
现在,我使用TRIGGER(BEFORE INSERT)为此,像这样:
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))
我没有尝试这个代码,但我的观点是:
- 用户插入
- 插入之前我检查最后一个主
- 如果为null,然后我设置为0,否则我砍符号( - )并带走最后一部分
- 我增加(使用[+ 1])
- Final,i concat
CODE
和New Number。
我误导了吗?大声笑,如果真的,如何创建像这样的? (我认为)我们可以做到这一点,也许没有人知道这一点,MySQL中的人工智能如何完美地工作?
这是安全的?怎么知道这个安全的方法是什么? –
@AbdulAzizAlBasyir我在发布答案之前测试了它,它工作正常。事实上,我会说它比你在问题中使用的方法更安全。 –
好的。非常感谢您的回答,您在哪里尝试?我也想尝试一下,作为一个教训 –