私はこのSQLエラーORA-00907右カッコが欠落は、テーブル
CREATE TABLE ARTIST (
ArtistID Int NOT NULL IDENTITY(1,1),
LastName Char(25) NOT NULL,
FirstName Char(25) NOT NULL,
Nationality Char(30) NULL,
DateOfBirth Numeric(4) NULL,
DateDeceased Numeric(4) NULL,
CONSTRAINT ArtistPK PRIMARY KEY(ArtistID),
CONSTRAINT ArtistAK1 UNIQUE(LastName, FirstName),
CONSTRAINT BirthValuesCheck CHECK (DateOfBirth < DateDeceased),
CONSTRAINT ValidBirthYear CHECK
(DateOfBirth LIKE '[1-2][0-9][0-9][0-9]'),
CONSTRAINT ValidDeathYear CHECK
(DateDeceased LIKE '[1-2][0-9][0-9][0-9]')
);
のような表を作成していると私はこのエラーを取得を作成します。00000 - "右括弧がありません" 何故でしょうか?
これは驚くべき解答ではありませんが、制約を削除して、どれが失敗しているかを確認するために1つずつ追加してみましたか? –
なぜあなたはファーストとラストネームにUNIQUE制約がありますか?同じ名前の複数のアーティストを持つことはできませんか?また、生年月日に「DATE」データ型を使用しないでください。 – MT0
'char(25)'と 'char(30)'データ型はほとんど間違いです。名前と国籍は可変長の文字列です。代わりに 'varchar2'を使用してください。あなたの 'DateOfBirth'と' DateDeceased'は、ちょうど年を格納するのではなく、確かに 'date'でしょう。数値フィールドにチェック制約を設定する場合は、数値比較を行います(つまり、YearOfBirth BETWEEN 1000,29999)。 –