sql—如果db2不存在表/列,则创建表/列—不使用sp,只需手动查询

gblwokeq  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(564)

我尝试使用sql语法:

  1. CREATE TABLE IF NOT EXISTS PWRNTCDT.customers_contacts(
  2. customer_id varchar(10) NOT NULL DEFAULT '',
  3. contact_index INT NOT NULL,
  4. is_primary SMALLINT NOT NULL,
  5. f_name varchar(40) DEFAULT NULL,
  6. l_name varchar(40) DEFAULT NULL,
  7. job_title varchar(60) DEFAULT NULL,
  8. phone varchar(30) DEFAULT NULL,
  9. mobile varchar(30) DEFAULT NULL,
  10. email varchar(254) DEFAULT NULL
  11. );

我得到一个错误,指出“exists”部分的语法错误。在网上找不到任何东西。谢谢!

q35jwt9p

q35jwt9p1#

不存在这样的问题 CREATE TABLE db2foribmi的功能。
CREATE OR REPLACE 但不是 CREATE IF NOT EXISTS .
请参阅文档中的create table语句说明。
但您可以使用动态复合语句。

  1. -- Use some another statement terminator in your tool you run this statement from like "@" as below
  2. -- Or don't use this statement terminator at all, if you run the statement from some external program
  3. BEGIN
  4. IF NOT EXISTS
  5. (
  6. SELECT 1
  7. FROM QSYS2.SYSTABLES
  8. WHERE TABLE_SCHEMA='PWRNTCDT' AND TABLE_NAME='CUSTOMER_CONTACTS'
  9. ) THEN
  10. CREATE TABLE PWRNTCDT.customers_contacts
  11. (
  12. customer_id varchar(10) NOT NULL DEFAULT '',
  13. contact_index INT NOT NULL,
  14. is_primary SMALLINT NOT NULL,
  15. f_name varchar(40) DEFAULT NULL,
  16. l_name varchar(40) DEFAULT NULL,
  17. job_title varchar(60) DEFAULT NULL,
  18. phone varchar(30) DEFAULT NULL,
  19. mobile varchar(30) DEFAULT NULL,
  20. email varchar(254) DEFAULT NULL
  21. );
  22. END IF;
  23. END@
展开查看全部

相关问题