mysql中的AUTO_INCREMENT默认可以签名



我明白了,column下面默认是signed int

   id INT(6);

下面指定的auto increment column可以默认签名吗?Mysql自动增量列的值从1开始。

id INT(6) AUTO_INCREMENT PRIMARY KEY

是的,你可以创建一个带有符号int的自动递增主键。试试这个:

CREATE TABLE mytable( id int(6) AUTO_INCREMENT PRIMARY KEY);

那么以下查询都是有效的

INSERT INTO mytable values();
INSERT INTO mytable values(-10);

这将导致表中一行的值为-10,另一行的值为1。但是,如果您尝试这样做,就会遇到问题:

 ALTER TABLE mytable AUTO_INCREMENT=-10;

是,不能设置为负数的自动递增值

经过大量的搜索…我寻找一个解决方案与一个触发器称为插入之前!我发现这个:https://stackoverflow.com/a/43441586/2282880

这是我的变体:

CREATE TRIGGER `invertID` 
BEFORE INSERT ON `<table>`
    FOR EACH ROW SET NEW.id=CONCAT("-", (
        SELECT `auto_increment` 
        FROM INFORMATION_SCHEMA.TABLES    
        WHERE table_name = '<table>')
    )

这对我来说很好。

这是我发现在两个方向同步两个数据库具有相同的模式,没有相同的ID在我的表

相关内容

  • 没有找到相关文章

最新更新