0

MySQL Workbench 6.0 ツールを使用して MS SQL Server 2000 データベースから MySQL 5.6 データベースにデータを移行していますが、多くの create table 構成で、許可されている列で「デフォルト値 N'no' はサポートされていません」というエラーが表示されます。 null ですが、デフォルト値を定義します。これは、分布列定義の定義に関する苦情のコード例です。

テーブル構成は次のようになります。

CREATE TABLE IF NOT EXISTS `dbo`.`_tbl_access` (
`distribution` VARCHAR(3) NULL DEFAULT 'no',
`email` VARCHAR(100) NULL)

NULL を格納できますが、デフォルトは「いいえ」にするという考え方です。これは、NULL を許可する既知の問題ですが、デフォルトとして「いいえ」の値を保存することですか?

4

1 に答える 1

0

MySLQ 5.6 のドキュメントに記載されているように、値として NULL を取ることができる列に独自のデフォルト値を使用することはできません。

列が値として NULL を取ることができる場合、列は明示的な DEFAULT NULL 句で定義されます。

11.5. データ型のデフォルト値

まったく同じ動作が必要な場合は、カスタム トリガーを使用できます。また、データベースの再設計を検討することもできます。たとえば、「distribution」フィールドの回答が未定義 (NULL) の場合、「_tbl_access」テーブルにレコードが存在するかどうかを自問するなどです。

于 2013-10-28T08:52:14.517 に答える