我有一个表格,管理员可以上传更多用户的详细信息。在上传之前,他必须选择限制;假设他选择 30个用户。那么,我可以将MySQL表的限制设置为仅允许插入30行而不是更多吗?有没有办法做到这一点?
答案 0 :(得分:3)
INSERT INTO `user_details` (fields)
SELECT d.detail
FROM
(SELECT 'asdasd' as `detail` FROM dual) d
CROSS JOIN (
SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS
LIMIT 30
) i
INFORMATION_SCHEMA
架构。答案 1 :(得分:0)
如果您使用的是数据库访问库,解决此问题的一种复杂方法是在SQL查询开始时打开一个事务,并仅在您未通过限制的情况下提交数据库,伪代码(使用社会):
transaction tr(*db);
//your SQL query that ends in "RETURNING id"
if (id < 30) tr.commit();
else throw;