我希望在sqlite3中执行以下类型的代码:
drop table x if (select y from z where col1 = "a");
基本上执行DDL命令如果某些值当前存在于同一数据库中。
有什么想法吗?
答案 0 :(得分:1)
sqlite shell脚本:
.bail ON
SELECT CASE COUNT(*)
WHEN 0 THEN 1/0 -- will throw
ELSE 1
END
FROM z
WHERE col1 = 'a';
DROP TABLE x;
使用sqlite the_database < the_script
答案 1 :(得分:0)
答案 2 :(得分:0)
正如其他人所指出的,如果不使用外部工具,这是不可能的。
我现在的解决方案是:
PSEUDOCODE:
// create temp table;
// insert conditional DDL statement(s) into temp table along with an execute column
// run condition, and if valid, set temptable's corresponding row to execute 1;
// after condition is over, run all true statements in temp table
答案 3 :(得分:0)
SQL没有为您提供将此功能作为单行执行的方法。 您在单个命令中最接近这样做的目的是: