我想在MySQL中插入数据,并在字段上自动命名,username但我怎么做呢?
目前的数据是:
+----+----------+ | id | username | +----+----------+ | 1 | admin1 | | 2 | admin2 | +----+----------+
我尝试使用这个SQL但它不能:
INSERT INTO `tbl_user` (
`username`
)
VALUES (
CONCAT('admin',(SELECT MAX(SUBSTRING_INDEX(`username`,'admin',-1))+1 FROM `tbl_user`))
);
并得到错误消息#1093 - You can't specify target table 'tbl_user' for update in FROM clause
我想要的最终结果是:
+----+----------+ | id | username | +----+----------+ | 1 | admin1 | | 2 | admin2 | | 6 | admin3 | | 9 | admin4 | +----+----------+
那可能吗?谢谢.
您可以使用在插入后更新列用户名的触发器.以下是有关如何实际执行此操作的更多信息:http://www.roseindia.net/sql/trigger/mysql-trigger-after-insert.shtml
编辑
我忘了MySQL不允许你从同一个表上声明的触发器更新表.
但是,这应该做你想做的事情:
SET @id := (SELECT id FROM YOUR_TABLE ORDER BY id DESC LIMIT 1);
INSERT INTO YOUR_TABLE (username) VALUES(
CONCAT("ADMIN", @id + 1)
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1972 次 |
| 最近记录: |