无法通过查询同一个表来更新表

时间:2015-06-02 09:02:45

标签: mysql

我有一张表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"

0 个答案:

没有答案