然后创建一个触发器来更新cod之前(之前)的字段,使用Concat函数将固定格式(BCB)与LPad返回的内容(数字、数量、字符填充)连接起来,0并在左侧填充到LAST_INSERT_ID +1函数返回的内容(最后插入的 id )Length ,在这个例子中 不超过3 (第二个参数)
DELIMITER $$
CREATE TRIGGER tg_insert_test
BEFORE INSERT ON test
FOR EACH ROW
BEGIN
if (SELECT COUNT(*) FROM prueba)=0 THEN
SET NEW.cod= 'BCB001';
else
SET NEW.cod= CONCAT('BCB', LPAD(LAST_INSERT_ID()+1, 3, '0'));
END IF;
END$$
DELIMITER ;
自动增量字段被精确地创建为不被用户触摸,从而可以在不产生附带损害的情况下从数据库中生成更改和删除数据。除了促进他们的参照完整性。
如果所有这些仍然不能说服你
AUTO-INCREMENT
是 int 的,而不是 varchar 的属性,那么你将无法做你想做的事。我希望我有所帮助。干杯
INT AUTO_INCREMENT
一种解决方案是在您的表中创建一个字段,而不是代码以保存所需的格式。然后创建一个触发器来更新
cod
之前 (之前)的字段,使用Concat函数将固定格式(BCB)
与LPad返回的内容 (数字、数量、字符填充)连接起来,0
并在左侧填充到LAST_INSERT_ID +1函数返回的内容 (最后插入的 id )Length
,在这个例子中 不超过3 (第二个参数)要插入,我只会做
INSERT
经典。