0

クラシック コマンドを使用して、ubuntu に mysql をインストールしました。

     apt-get install mysql-server

そして驚いたことに、「チェック」で書いた制約を尊重しないのはmysqlです。バグなのか、それとも mysql で制約を使用する方法がわからないのか教えていただけますか? (私は主に単純なSQLでコマンドを書きました)

たとえば、次のコマンド:

CREATE TABLE Employee (
Name    VARCHAR(50) PRIMARY KEY NOT NULL, 
Phone VARCHAR(15) DEFAULT 'Unknown Phone',
Age     INT CHECK (Age BETWEEN 20 and 30));

INSERT INTO Employee (Name, PhoneNo, Age) VALUES ('Joe Wang', '666 2323', 26);
INSERT INTO Employee (Name, Age) VALUES ('John Doe', 31);

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

| Name     | PhoneNo       | Age  |
| Joe Wang | 666 2323      |   26 |
| John Doe | Unknown Phone |   31 |

2 rows in set (0.01 sec)

どうすればそれが可能になりますか?

4

1 に答える 1

2

こんなこと言ってすみませんが……。

CHECK 句は解析されますが、すべてのストレージ エンジンによって無視されます。

http://dev.mysql.com/doc/refman/5.5/en/create-table.html

于 2011-10-14T14:31:06.240 に答える