gpt4 book ai didi

mysql - 在 MySQL 中自定义主键

转载 作者:行者123 更新时间:2023-11-30 21:52:59 25 4
gpt4 key购买 nike

如何在 MySQL 中创建自定义主键?,例如我有一个表,表名是 X,我有一个表字段为 IDCode ,姓名

I am afraid if I have 1000 users and when they input together will result in destruction

我想:

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))

我没有尝试这段代码,但我的观点是:

  1. 用户插入
  2. 在插入之前我检查最后一个主节点
  3. IF Null then i set 0, else I cut the symbol (-) and take the last part
  4. 我递增(使用 [+ 1])
  5. 最后,我连接 CODE 和新号码。

我错了吗?大声笑,如果是真的,如何创造这样的?(我认为)我们可以做到,也许没有人知道这一点,MySQL 中的 AI 如何工作得如此完美?

最佳答案

他的回答(https://stackoverflow.com/users/1133682/mjh)

InnoDB 非常依赖PRIMARY KEY 使用Auto Increment,如果不使用Auto Increment 就会耗费空间。每行添加至少 6-8 个字节只是为了制作“HIDDEN PRIMARY KEY”,innoDB 的最佳用途是使用自动增量并且不要打扰该键,如果你想添加 UNIQUE KEY 那么你只需要 CONCAT

关于mysql - 在 MySQL 中自定义主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46406311/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com