2012-07-19 55 views
0

我嘗試插入一個新的價值, 時檢查電子郵件的語法,但這似乎並沒有工作:檢查電子郵件域在MySQL不起作用

create table foo (
    email varchar(100) not null, 
    constraint foo_check1 check (email like '%@%.%') 
); 

insert into foo values ('bar'); /* OK ...why ? */ 

回答

1

這是一個已知的限制的MySQL - 檢查約束在CREATE TABLE上不受支持。 請參閱:「The CHECK clause is parsed but ignored by all storage engines

您應先創建表格,然後更改它以添加檢查約束。

+0

感謝您提供這方面的信息,請問該怎麼辦? – user544262772 2012-07-19 07:39:16

+0

我也試圖改變表,但它不起作用,這是相同的結果。 – user544262772 2012-07-19 07:39:50

+0

似乎MYSQL根本不支持檢查約束。 但是,您可以使用觸發器模擬它們。請參閱:http://forge.mysql.com/wiki/Triggers#Emulating_Check_Constraints – johngirvin 2012-07-19 07:45:38