«« ( Date ) »» // «« ( Thread ) »» // ri4st - 2004

Re: PK = Not null

by Aleksandar Mitic
petak, 30. april 2004 - 01:32.

Prema mom iskustvu, posle "ADD PRIMARY KEY" sva polja kljuca automatski postaju NOT NULL, cak i ako je prilikom definisanja, eksplicitno stajalo NULL (MySQL 4.0.16). Inace, ako ne stoji NOT NULL, podrazumeva se NULL.

Ja kod sebe nikako nisam mogao da izazovem ovu gresku (a probao sam i probao ;o)), ali u krajnjem slucaju ovo bi trebalo da radi svuda:
CREATE TABLE ADMINISTRATOR (
IDK INTEGER NOT NULL
);
ALTER TABLE ADMINISTRATOR
ADD PRIMARY KEY (IDK);


Iako svuda u Erwin modelu, za PK u ODBC/Generic tabu stoji stiklirano NOT NULL, kad generisem skript u ubacim u SQL-Query (MySQL Front) i pokrenem prijavi:
Error: 1171 - All parts of a PRIMARY KEY must be NOT NULL; If you need NULL in a key, use UNIQUE instead

Naredbe koje dovode do ove pojave su sledece (u stvari, samo poslednja je ta posle koje izadje greska):
-----------------------------------------------------------------------------------
CREATE TABLE ADMINISTRATOR (
IDK INTEGER
);

CREATE UNIQUE INDEX XPKADMINISTRATOR ON ADMINISTRATOR
(
IDK
);


ALTER TABLE ADMINISTRATOR
ADD PRIMARY KEY (IDK);
----------------------------------------------------------------------------------------
Gde gresim?

= = = = = = = = = = = = = = = = = = = = = =

Best regards.

Aleksandar Mitic
mitic@mail.ru
2004-04-30