[英]Set default value of field to auto_increment value
我有一個表,其中有一個自動遞增的列id
和另一個列ord
。
我的目標是有一個“默認”值ord
是id
。 我正在使用觸發器(請參見下文),但它始終使用0
而不是id
值。
當我從id
刪除auto_increment時,它應能正常工作。 如何將字段的“默認”值設置為auto_increment字段之一?
表
CREATE TABLE IF NOT EXISTS `mytable` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`ord` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
);
觸發
CREATE TRIGGER `ord_ai` BEFORE INSERT ON `mytable`
FOR EACH ROW IF NEW.ord IS NULL THEN
SET NEW.ord := NEW.id;
END IF
從INFORMATION_SCHMEA.TABLES
讀取id字段的下一個AUTO_INCREMENT
值,並將其用於ord
字段。
delimiter //
drop trigger if exists ord_ai //
CREATE TRIGGER `ord_ai` BEFORE INSERT ON `mytable`
FOR EACH ROW
BEGIN
IF NEW.ord IS NULL THEN
SET NEW.ord := ( SELECT AUTO_INCREMENT
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'mytable'
AND TABLE_SCHEMA = DATABASE() );
END IF;
END;
//
delimiter ;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.