IF NOT EXISTSを使用したデータテーブルの作成

1419 ワード

次のようなsql文を簡単に使用すると、失敗を返す可能性があります.失敗の原因は、このデータテーブルがすでに存在している可能性が高いからです.
create table  sales3 ( id NUMERIC,sale_date datetime not null) 
PARTITION by range(TO_DAYS(sale_date))
(
   PARTITION sales20140301 values less than(TO_DAYS('2014-03-01')),
   PARTITION sales20140401 values less than(TO_DAYS('2014-04-01'))
)

実行時に返されるプロンプト文は次のとおりです.
[SQL] create table  sales3 ( id NUMERIC,sale_date datetime not null) 
PARTITION by range(TO_DAYS(sale_date))
(
   PARTITION sales20140301 values less than(TO_DAYS('2014-03-01')),
   PARTITION sales20140401 values less than(TO_DAYS('2014-04-01'))
)

[Err] 1050 - Table 'sales3' already exists

IF NOT EXISTSを使用してデータテーブルを作成すると、このテーブルが既に存在していても成功します.
create table IF NOT EXISTS  sales3 ( id NUMERIC,sale_date datetime not null) 
PARTITION by range(TO_DAYS(sale_date))
(
   PARTITION sales20140301 values less than(TO_DAYS('2014-03-01')),
   PARTITION sales20140401 values less than(TO_DAYS('2014-04-01'))
)

次のように返されます.
[SQL] create table  if not exists sales3 ( id NUMERIC,sale_date datetime not null) 
PARTITION by range(TO_DAYS(sale_date))
(
   PARTITION sales20140301 values less than(TO_DAYS('2014-03-01')),
   PARTITION sales20140401 values less than(TO_DAYS('2014-04-01'))
)

     : 0
  : 0.003ms