【发布时间】:2013-05-11 22:31:30
【问题描述】:
我试图找出一个触发器来分配自动递增的“ID”主键字段的值,该字段是在插入到另一个字段“Sort_Placement”时自动生成的,因此插入后它们是相同的。
如果您想知道我为什么要这样做,'Sort_Placement' 用作表中可以更改的排序值,但默认情况下记录添加到表的底部
表格数据
`ID` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`Account_Num` mediumint(8) unsigned NOT NULL,
`Product_Num` mediumint(8) unsigned NOT NULL,
`Sort_Placement` mediumint(8) unsigned DEFAULT NULL,
`Order_Qty_C` smallint(6) NOT NULL DEFAULT '0',
`Order_Qty_B` smallint(6) NOT NULL DEFAULT '0',
`Discount` decimal(6,2) NOT NULL DEFAULT '0.00',
PRIMARY KEY (`ID`),
UNIQUE KEY `ID_UNIQUE` (`ID`)
插入触发器后
CREATE
TRIGGER `order_guide_insert_trigger`
AFTER INSERT ON `order_guide`
FOR EACH ROW
BEGIN
IF Sort_Placement IS NULL THEN
SET Sort_Placement = NEW.ID;
END IF;
END;
我尝试了一堆使用“NEW”前缀的组合,但都没有成功。例如将 NEW 前缀放在每个字段名称之前。
试试看
INSERT INTO `order_guide` (`Account_Num`, `Product_Num`) VALUES ('5966', '3');
插入错误
ERROR 1054: Unknown column 'Sort_Placement' in 'field list'
【问题讨论】:
-
您似乎试图将新记录的 Sort_Placement 的值设置为自动增量 ID。但是,在“之后”触发器中不允许更新新行