erstellen Ich mag dieseSQL-Fehler ora-00907 fehlende rechte Klammer Tabelle
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]')
);
und ich bekomme diesen Fehler eine Tabelle bin erstellen: Fehler melden - SQL-Fehler: ORA-00907: fehlende rechte Klammer 00907 00000 - "fehlende rechte Klammer" Irgendeine Idee warum?
Es ist keine erstaunliche Antwort, aber haben Sie versucht, die Einschränkungen zu entfernen und sie dann nacheinander hinzuzufügen, um zu sehen, was schief geht? –
Warum haben Sie eine "EINZIGARTIGE" Einschränkung für den Vor- und Nachnamen? Ist es nicht möglich, mehrere Künstler mit demselben Namen zu haben? Warum verwenden Sie auch kein Datum vom Typ "DATUM" für Geburtsdatum/Todesdatum? – MT0
'Char (25)' und 'Char (30)' Datentypen sind fast sicher eine schlechte Wahl. Namen und Nationalitäten sind Strings mit variabler Länge, verwenden Sie stattdessen 'varchar2'. Ihr "DateOfBirth" und "DateDeaseed" sollten mit ziemlicher Sicherheit ein "Datum" sein, anstatt nur ein numerisches Jahr zu speichern. Wenn Sie eine Prüfbedingung für ein numerisches Feld setzen möchten, nehmen Sie einen numerischen Vergleich vor (d. H. 'YearOfBirth BETWEEN 1000 and 2999') –