如何在MySQL中哈希自动增量

刮。

有没有一种方法可以使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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章