AlteryxでデータベースのテーブルにPrimary Keyを設定する方法を紹介します。
なぜPrimary Keyが必要なのか?
まず、なぜPrimary Keyが必要なのかを説明します。
結論としては「Alteryxのデータ出力ツールでデータベースの更新を行う際は、データベースのテーブルにPrimaryKeyが設定されていないと失敗してしまう」からです。
それでは、どのようになるのか見ていきましょう。
Alteryxのデータ出力ツールでデータベースのテーブル(以下DBテーブル)を更新する場合には以下の更新メニューが存在します
これらを実行する場合、DBテーブルにPrimary Keyが設定されている必要性があります。
データベース側でDBテーブルを作成する場合は、Primary Keyの設定は容易ですが、Alteryxを用いてDBテーブルを作成する場合は、通常Primay Keyの存在しないDBテーブルが作成されます。このようなテーブルを更新する場合はエラーが発生してしまいます。
そこで「Primary Key(主キー)」の設定が必要となります。
AlteryxでPrimaryKeyを設定してデータベースのテーブルを作成する方法
それでは、Alteryxを使ってPrimary Keyを設定しつつデータベースにテーブルを作る方法を紹介します。
AlteryxでPrimary Keyを設定する(出力ツール <Output Tool>オプション)
サンプルとして、以下のテキスト入力ツールのデータから、Primary Key付きDBテーブルを作成します。今回、Primary Keyはフィールド「id」に設定します。
テキストツールではタイプが自動判別ですので、選択ツールを使い、適切なタイプに修正します。
出力ツールのオプション「SQLステートメント事後作成」(テーブル作成後にSQL実行)にフィールド「id」をPrimaryKeyに変更するSQLを記載します。
SQL構文はデータベースに準拠しますのでご注意ください。
今回はMicroSoft SQL Serverを使用していますので下記の2行のSQL文になります
SQL文 | 内容 |
---|---|
ALTER TABLE PrimaryKeyTest用 ALTER COLUMN id int not null; | Primary Keyに変更するため、属性をNot Nullに変更します。 |
ALTER TABLE PrimaryKeyTest用 ADD PRIMARY KEY (id); | フィールドidをPrimary keyに変更します。 |
※「PrimaryKeyTest用」は作成するテーブル名です
※太文字部分以外は設定に合わせて変更してください
SQLステートメント事後作成を利用することでPrimary Keyに設定されていることがデータベース側(今回は、Microsoft SQLServer)でも確認できます。
まとめ
- Alteryxの出力ツールでデータベースを更新する際はテーブルにPrimary Keyが設定されている必要があります
- Alteryxで普通にデータベースにテーブルを作成するとPrimary Keyは設定されません
- AlteryxからPrimary Keyを設定するには、テーブル作成時に「SQLステートメント事後作成」オプションを活用しましょう
- Alteryxの出力ツールでデータベースを更新する際、Drop(上書き)であればPrimary Keyは不要です
- Alteryxを使わずに、元々データベース側でテーブルを作成している場合、Primary Keyを設定していれば改めてAlteryxで設定する必要はありません
※Alteryx Version 2018.4.5時点での情報です