我有一张表notes
,描述为:
+---------+--------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+-------------------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| date | datetime | YES | | CURRENT_TIMESTAMP | |
| content | varchar(400) | YES | | | |
| page | int(11) | YES | | -1 | |
| user_id | int(11) | YES | MUL | NULL | |
| hasmore | bit(1) | YES | | b'0' | |
+---------+--------------+------+-----+-------------------+----------------+
页面代表页码。
我无法创建一个触发器,可以在插入页面时自动设置我的笔记的页码
原因是这种说法不起作用。
update notes set page = (select count(*) from notes);
我似乎无法查询notes
来更新notes
本身的值
有没有其他方法可以轻松完成我的任务。
我得到的错误是:
ERROR 1093 (HY000): You can't specify target table 'notes' for update in FROM clause
编辑:
假设我的表中有2个条目
>select id, user_id, page, content from notes where user_id = 2;
1 | 2 | 0 | "hi"
2 | 2 | 1 | "welcome"
我插入新数据
>insert into notes (user_id, content) values (2, "hello");
然后我的桌子应该像:
>select id, user_id, page from notes where user_id = 2;
1 | 2 | 0 | "hi"
2 | 2 | 1 | "welcome"
3 | 2 | 2 | "hello"