簡體   English   中英

mysql中的AUTO_INCREMENT可以默認簽名嗎?

[英]AUTO_INCREMENT in mysql can be signed by default?

據我所知,默認情況下,下面的column將被signed int

   id INT(6);

下面指定的auto increment column可以默認簽名? Mysql從1開始為自動增量列的值。

id INT(6) AUTO_INCREMENT PRIMARY KEY

是的,您可以使用signed 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;

是的,您不能擁有負數的自動增量值。

經過大量搜索......我找到了一個名為BEFORE INSERT的TRIGGER解決方案! 我發現了這個: 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。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM