【发布时间】:2019-12-06 23:04:26
【问题描述】:
我目前有一个.sql 文件,其中包含:
DROP VIEW IF EXISTS vw_example;
CREATE VIEW vw_example as
SELECT a FROM b;
在作为 flyway 迁移的一部分运行此命令时,如果视图已存在,则会失败,就好像创建命令没有等待 DROP IF EXISTS 完成一样。
我知道 SQL Server 有一个 GO 类型的关键字。有没有办法告诉 cockroachdb 等待第一个命令?
【问题讨论】:
-
我认为这不是 CockroachDB 中的批处理问题。尝试将以下内容多次复制粘贴到
cockroach sqlshell(或demo,如果您使用的是 19.2+):\| echo "DROP VIEW IF EXISTS vw_example; CREATE VIEW vw_example as SELECT count(1) from pg_settings;"。您确定 slick 正在按规定的顺序/从文件中执行这些语句吗? -
@PeterVandivier - 我想是这样,但这都是 Flyway 迁移的一部分。我不确定是否有代码可以同时解析文件和运行语句 - 对我来说没有多大意义,但也许?当我使用 DataGrip 运行它们时,它们总是按预期工作。
标签: slick-2.0 cockroachdb