有没有一种方法可以使mysql散列其表的自动增量值?例如与md5吗?
id-名称 1-纽约 2-芝加哥 3-悉尼 4-柏林
我想要得到的
id- 名称c4ca4238a0b923820dcc509a6f75849b-纽约 c81e728d9d4c2f636f067f89cc14862c-芝加哥 eccbc87e4b5ce2fe28308fd9f2a7baf3-悉尼 a87ff679a2f3e71d9181a67b7542122c-柏林
提前致谢
编辑:
我想我需要进一步澄清这个问题,我想做的不是呼叫ID,而是插入ID。目前,ID列是一个int字段,我将其更改为varchar。
我想将标识符另存为“散列”在数据库中,而不用mysql SELECT对其进行调用。谢谢
如果出于某些原因确实需要此功能,则可以借助单独的排序表和BEFORE
触发器来实现
表模式:
CREATE TABLE table1_seq
(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
CREATE TABLE table1
(id VARCHAR(32) NOT NULL DEFAULT 0, name VARCHAR(32));
触发
DELIMITER $$
CREATE TRIGGER tg_bi_table1
BEFORE INSERT ON table1
FOR EACH ROW
BEGIN
INSERT INTO table1_seq () VALUES ();
SET NEW.id = MD5(LAST_INSERT_ID());
END$$
DELIMITER ;
现在您可以在table1
表格中插入行
INSERT INTO table1 (`name`) VALUES ('New York'),('Chicago'),('Sydney'),('Berlin');
或选择
SELECT * FROM table1 WHERE id = MD5(2);
这是SQLFiddle演示
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句