自动填充mysql中的两列

时间:2017-11-24 07:04:32

标签: mysql

我有一个包含列id,名称,描述和状态的MYSql表。 id列自动递增并且是主键。现在,我想在名为'display_priority'的表中添加另一列。我希望在此列上使用“order by”来提取记录。

如何在插入记录时自动填充此表(基于ID)? 插入时display_priority值无关紧要。在显示记录之前,应在稍后的某个时间点重新排列。但是,插入的值必须是唯一的。

有任何帮助吗?提前谢谢。

编辑:我知道这可以通过插入后触发器来完成。如果,我想避免触发怎么办?还有别的吗?

3 个答案:

答案 0 :(得分:1)

如果您想避免TRIGGER,可以使用当前UNIX_TIMESTAMPCURRENT_TIMESTAMP作为默认值。但如果在同一秒内拖曳或更多INSERT你就会遇到问题......

display_priority TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP

答案 1 :(得分:1)

您获取表的最大ID并将1添加为自动递增的ID预测。

INSERT INTO `table_name` (col1, col2, col3) 
SELECT val1, val2, max(id) + 1 AS val3 FROM `table_name`;

<!-- id is auto-incremented -->

Example 

INSERT INTO `users` (name, email, display_priority) 
SELECT 'Dave', 'dave@email.com', max(id) + 1 AS display_priority FROM `users`;

答案 2 :(得分:0)

您可以在插页上添加TRIGGER女巫更新display_priority,其值为maximum的{​​{1}}加一。

display_priority