【发布时间】:2026-02-15 12:35:01
【问题描述】:
我希望编写一个 SQL 脚本,在创建表/序列之前检查表/序列是否存在。
我尝试了谷歌并获得了一些对其他人有用但对我无效的解决方案:
方法一:
SELECT *
FROM tableA
WHERE EXISTS
(SELECT * from tableB);
这适用于select 语句。然后我尝试使用 create table 语句:
CREATE TABLE "SMEADM"."JXTEST" (
"ACCOUNTSENTRYID" BIGINT NOT NULL )
IN "DATATBSP"
WHERE EXISTS
(SELECT * from tableB);
这将遇到错误42601。
方法二:
CREATE TABLE IF NOT EXISTS "SMEADM"."JXTEST" (
"ACCOUNTSENTRYID" BIGINT NOT NULL )
IN "DATATBSP" ;
这也给我带来了错误42601。
方法三:
begin
declare continue handler for sqlstate '42710' begin end;
execute immediate 'CREATE TABLE "SMEADM"."JXTEST" (
"ACCOUNTSENTRYID" BIGINT NOT NULL )
IN "DATATBSP"';
end
这也给我带来了错误42601。
请多多指教。
【问题讨论】:
-
DB2 的版本和平台是什么?
-
版本是
DB2 v10.1.0.0,如何查看平台?
标签: sql database db2 create-table not-exists