Mysql 如何设置SQL默认值等于主键
我有一个名为Mysql 如何设置SQL默认值等于主键,mysql,sql,Mysql,Sql,我有一个名为post的表,如下所示: ╔════════════════════════════════════╗ ║ post_id origin_post_id rev ║ ╠════════════════════════════════════╣ ║ 1 1 1 ║ ║ 2 1 2 ║ ║ 3 3 1
post
的表,如下所示:
╔════════════════════════════════════╗
║ post_id origin_post_id rev ║
╠════════════════════════════════════╣
║ 1 1 1 ║
║ 2 1 2 ║
║ 3 3 1 ║
║ 4 3 2 ║
╚════════════════════════════════════╝
post\u id
是主键,使用自动递增。我使用
origin\u post\u id
存储origin post id
如果是新帖子,我想将origin\u post\u id
设置为等于post\u id
。
如何让我使用
INSERT INTO POST
(POST_ID,
ORIGIN_POST_ID,
REV)
VALUES (NULL,
Default,
3)
创建表时应该做什么?是否有一些方法可以获取自动增量键?运行上述查询
INSERT INTO POST
(POST_ID,
ORIGIN_POST_ID,
REV)
VALUES (NULL,
Default,
3)
然后运行更新查询
UPDATE POST SET ORIGIN_POST_ID=POST_ID WHERE ORIGIN_POST_ID IS NULL
这将覆盖整个桌子。如果您添加一个空检查,它会起作用,但表越大,速度就越慢。
UPDATE POST SET ORIGIN\u POST\u ID=POST\u ID,其中ORIGIN\u POST\u ID为空代码>我现在找不到另一个使用触发器的答案。