Witam,
chcę dodać nową kolumnę w tabeli, która będzie kluczem obcym ale także chcę miec możliwość zostawienie tego pola pustego. Czy ta komenda jest prawidłowa?
ALTER TABLE users ADD grade_id SMALLINT UNSIGNED NULL DEFAULT 0;
Witam,
chcę dodać nową kolumnę w tabeli, która będzie kluczem obcym ale także chcę miec możliwość zostawienie tego pola pustego. Czy ta komenda jest prawidłowa?
ALTER TABLE users ADD grade_id SMALLINT UNSIGNED NULL DEFAULT 0;
Pole musi dopuszczać Null, to wystarczy.
Czyli probuje do istniejacej tabeli dodać pole, a nastepnie założyć ograniczenie:
ALTER TABLE AllowedCar
ADD COLUMN worker
int NULL,
ADD CONSTRAINT FK_Worker_table_WorkerID
FOREIGN KEY (worker
)
REFERENCES AllowedCar
(WorkerID
);
błąd:
#1005 - Can't create table 'trackingsystem.#sql-421_ca' (errno: 150)
Ten błąd może świadczyć o wielu rzeczach np.
Osobiście zacząłbym od rozbicia zapytania na dwa, ponieważ ADD CONSTAINT może nie widzieć pola worker (tworzenie pola jest w tym samym poleceniu), a następnie sprawdziłbym typ WorkerID i zadeklarował identyczny typ na worker.