Teradataが既存のテーブルをCREATE TABLE
クエリで置き換えるために変更する必要がある設定は何ですか?
現在、テーブルが存在する場合は、CREATE
にエラーが発生します。だから私はDROP
それを作成する前にテーブルにする必要があります。Teradata:既存のテーブルを "CREATE TABLE"に置き換えます
THX
Teradataが既存のテーブルをCREATE TABLE
クエリで置き換えるために変更する必要がある設定は何ですか?
現在、テーブルが存在する場合は、CREATE
にエラーが発生します。だから私はDROP
それを作成する前にテーブルにする必要があります。Teradata:既存のテーブルを "CREATE TABLE"に置き換えます
THX
REPLACE PROCEDURE DROP_IF_EXISTS(IN table_name VARCHAR(60),IN db_name VARCHAR(60))
BEGIN
IF EXISTS(SELECT 1 FROM dbc.tables WHERE databasename=db_name AND tablename=table_name)
THEN
CALL DBC.SysExecSQL('DROP TABLE ' || db_name ||'.'|| table_name);
END IF;
END;
そして、あなたのDDLスクリプトで:
call drop_if_exists('$your_table_name','$your_db_name')
;
database $your_db_name;
create table $your_table_name ...
;
'AND TableKind = 'T''を追加し、' dbc.TablesV'とVARCHAR(128)を使うのが良いでしょう。しかし、単にテーブルを削除し、*テーブルが存在しない*エラーを無視する方が効率的です(https://stackoverflow.com/a/39771103/2527905を参照)。 – dnoeth
あなたは私の知る限りできません。テーブルを再作成するには、まずテーブルを削除する必要があります。 – Wndrr
[テーブルが存在する場合はドロップテーブルを作成し、それが存在しない場合は作成してください](https://stackoverflow.com/questions/20155989/if-table-exists-drop-table-then-create- – Wndrr
@Wndrr:これはTeradataでサポートされていないMySQL拡張です。しかし、ストアドプロシージャを使用してエミュレートすることができます。https://stackoverflow.com/a/39771103/2527905 – dnoeth