例如我有2个特定的列:id和threadId,在某些情况下,我希望threadId等于id(如果它是原始线程),我不确定我会怎么做,因为id是autoIncremented。
答案 0 :(得分:1)
你应该可以使用触发器来做到这一点。
使用此信息中的信息来帮助您:
Can you access the auto increment value in MySQL within one statement?
在插入之前获取下一个ID表单auto_increment并将其设置在新字段中。
然而,这会带来一个问题 - 你说它应该只在“某些情况下”发生。这意味着触发器对你没有好处,因为它每次都会执行(除非你在表中有一些额外的逻辑,以允许检查是否应该在触发器中使用IF语句设置新字段)。在这种情况下,您唯一的选择是插入行,获取其新创建的ID,并在必要时更新它,将另一列设置为此值。
答案 1 :(得分:1)
Greg提到了两个选项 第一个是在表上创建一个触发器,在该特定表上插入后,将字段ID更新为与threadID相同:
update schema.tablename set threadID = ID;
另一个选项是执行sql本身并更新表。
答案 2 :(得分:1)
使用此查询INSERT INTO table(id,threadId)VALUES(NULL,(SELECT LAST_INSERT_ID()+ 1));
Shamseer PC