[前][次][番号順一覧][スレッド一覧]

mysql:7606

From: "Takuro Suzuki" <"Takuro Suzuki" <etsuzuki@xxxxxxxxxx>>
Date: Mon, 28 Apr 2003 13:40:01 +0900
Subject: [mysql 07606] CREATE TABLE の時の CHECK

PHP4徹底攻略改訂版についているサンプルのSQL文を実行したところ、
エラーになっていしまいました。

テスト環境
OS:Turbolinux 6.5 Server
MySQL:3.23.56
PHP4:4.2.3

tenkiをTEXTからVARCHAR(6)にして、ondoとuryouのCHECKをはずすと、
テーブルが作成できました。
最後のGRANT分は、エラーになりますが。

TEXTには、DEFAULTは、使用できないのでしょうか?
このCHECK文は、どうしてエラーになるのでしょうか?

サンプルのSQL文(ex6/otenki.sql)

-- お天気日記テーブルの作成
-- DROP TABLE otenki;
CREATE TABLE otenki (
 day DATE DEFAULT 'today' PRIMARY KEY, -- 日付(主キー)
 tenki TEXT DEFAULT '晴れ', -- 天気(晴れ、曇...)
 ondo INTEGER DEFAULT 25 CHECK(ondo IS NULL OR ONDO > -50 AND ONDO < 50), --
温度
 uryou INTEGER DEFAULT 0 CHECK(uryou IS NULL OR URYOU >= 0), -- 雨量
 CONSTRAINT otenki_check
 CHECK(tenki IS NULL OR
 (tenki = '晴れ' AND uryou = 0 OR tenki = '曇' OR tenki = '雨'))
);

INSERT INTO otenki VALUES('2000-8-1','晴れ',30,0);
INSERT INTO otenki VALUES('2000-8-3','曇',27,10);
INSERT INTO otenki VALUES('2000-8-10','雨',25,100);

GRANT ALL on otenki to nobody;
↑このGRANT文は、MySQLのルートユーザーでないとエラーになりますよね?

--------------------------------
(有)水戸コンピュータサービス
鈴木卓朗

TEL: 0294-52-8596


[前][次][番号順一覧][スレッド一覧]

->    7606 2003-04-28 13:40 ["Takuro Suzuki" <ets] CREATE TABLE の時の CHECK               
      7618 2003-04-30 11:18 ┗[SUGAWARA Hajime <sug]