为DB2创建表/列(如果不存在)-不使用sp,只使用手动查询



我尝试使用SQL语法:

CREATE TABLE IF NOT EXISTS PWRNTCDT.customers_contacts(
customer_id varchar(10) NOT NULL DEFAULT '',
contact_index INT NOT NULL,
is_primary SMALLINT NOT NULL,
f_name varchar(40) DEFAULT NULL,
l_name varchar(40) DEFAULT NULL,
job_title varchar(60) DEFAULT NULL,
phone varchar(30) DEFAULT NULL,
mobile varchar(30) DEFAULT NULL,
email varchar(254) DEFAULT NULL
);

并且我得到一个错误,指示在";存在";部分在网上找不到任何内容。谢谢

IBM i的DB2中没有这样的CREATE TABLE功能。
CREATE OR REPLACE,但没有CREATE IF NOT EXISTS
请参阅文档中的CREATE TABLE语句描述。

但您可以使用Dynamic复合语句。

-- Use some another statement terminator in your tool you run this statement from like "@" as below
-- Or don't use this statement terminator at all, if you run the statement from some external program
BEGIN
IF NOT EXISTS
(
SELECT 1 
FROM QSYS2.SYSTABLES
WHERE TABLE_SCHEMA='PWRNTCDT' AND TABLE_NAME='CUSTOMER_CONTACTS'
) THEN
CREATE TABLE PWRNTCDT.customers_contacts
(
customer_id varchar(10) NOT NULL DEFAULT '',
contact_index INT NOT NULL,
is_primary SMALLINT NOT NULL,
f_name varchar(40) DEFAULT NULL,
l_name varchar(40) DEFAULT NULL,
job_title varchar(60) DEFAULT NULL,
phone varchar(30) DEFAULT NULL,
mobile varchar(30) DEFAULT NULL,
email varchar(254) DEFAULT NULL
);
END IF;
END@

最新更新