我找到的所有程序帮助仅用于选择目的。
我可以编写一个表来截断几个表吗?
类似于(但这不起作用)
CREATE PROCEDURE clearall()
BEGIN
truncate tallgrrl.auth;
truncate tallgrrl.factory;
truncate tallgrrl.farm;
truncate tallgrrl.player;
truncate tallgrrl.timer;
END;
答案 0 :(得分:5)
truncate可能不起作用,在这种情况下您需要
使用删除
删除关系截断表并再次重新创建关系
答案 1 :(得分:4)
绝对。存储过程的目的之一是封装逻辑/多个操作。
答案 2 :(得分:2)
我不知道为什么你的TRUNCATE不起作用。我已经存储了TRUNCATE表的过程。您使用的是什么数据库平台?
您的TRUNCATE是否在SP之外工作?正如SQLMenace所提到的,你不能对具有FK依赖性的表使用TRUNCATE。
答案 3 :(得分:1)
尝试切换到“从[表名]中删除”,因为由于权利问题,截断可能不起作用。
答案 4 :(得分:1)
你应该能够。也许你正在以错误的顺序进行截断(并且违反完整性约束。例如,在没有孩子悬挂它之前你不能删除父。
答案 5 :(得分:1)
您可能需要更改截断的顺序,以便在引用它们的数据之前不截断外键。
答案 6 :(得分:0)
你得到了什么错误?
除了上述FK潜在问题之外,根据执行proc的用户的权限,您可能没有截断权限。