我是MySQL和DB的新手,所以请耐心等待:):
我有一个表 - tblfolders,它有一个字段'barcodeID',这是一个INT,每当一个新行插入表中时我需要增加1。我不能把它变成一个自动增量字段,因为我已经有'id'字段自动递增。
我尝试使用AFTER INSERT触发器执行此操作,但我不断收到错误:“无法在存储的函数/触发器中更新表'tblfolders',因为它已被调用此存储函数/触发器的语句使用。”< / p>
有关如何在插入表格中自动增加此字段的任何建议吗?
谢谢!
答案 0 :(得分:0)
如果将barcodeId
作为具有自动增量主键的条形码表的外键呢?
答案 1 :(得分:0)
<强>更新强> 使用auto_increment然后使用php格式化它,例如sprintf of printf:
while($row = mysql_fetch_assoc($sql)) {
$numberOfZerosINeed = 10-strlen($row['id']);
$formated_id = sprintf(" %010s ", $row['id']); // zero-padding works on strings too
$row['barcode_id']=$formated_id;
$all_rows[]=$row;
}
在这一点上,好像你有一个带有格式化AUTO_INCREMENT整数的列barcode_id!
OLD ANSWER 您可以使用编程语言执行类似插入后的操作,很难说什么是最好的,您应该描述您想要做什么,如果您使用的是php,为什么auto_increment本身不会为您提供所需的数据?在php中你可以做一些像插入后的东西:
$sql = mysql_query("INSERT INTO tblfolders (id, othervales) VALUES ('{$id}', '{$othervalues}') ");
$last_id = mysql_insert_id();
mysql_query("UPDATE tblfolders SET barcode_id='".($old_barcode_id+1)." WHERE id={$last_id} LIMIT 1 ");