2013-09-25 27 views
0

我正在使用MySQL Workbench 6.0工具將數據從MS SQL Server 2000數據庫遷移到MySQL 5.6數據庫以及許多create table結構在允許爲null的列上給出了錯誤「不支持默認值N'no'」,但定義了一個默認值。以下是一些示例代碼,其中投訴是關於分配列定義的定義。獲取默認值N'no'不支持VARCHAR(3)NULL DEFAULT'no'

表結構是這樣的:

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

的想法是,你可以存儲NULL,但具有默認的是「不」。這是一個已知的問題,允許NULL,但存儲默認值爲'no'?

回答

0

由於MySLQ 5.6文檔中所述,您不能使用自己的默認值就可以取NULL作爲值的列:

如果列可以接受NULL作爲一個值,該列用明確的DEFAULT NULL子句定義。

11.5. Data Type Default Values

如果你想完全一樣的行爲,你可以使用自定義的觸發器。您也可以考慮重新設計數據庫,例如如果「分配」字段的答案是未定義的(NULL),則問自己如果記錄應該存在於'_tbl_access'表中。