relacje
Rozpoczęte przez vulcan0, paź 20 2010 16:11
1 odpowiedzi na ten temat
relacje
#1
Napisany 20 październik 2010 - 16:11
nazwa bazy ksiegarnia_internetowamam 3 tabele
create table klient (klient_id serial, imie varchar(30), nazwisko varchar(30), ulica varchar(30), miejscowosc_id integer, kod_pocztowy varchar(30), wojewodztwo_id integer, telefon varchar(30), constraint klient_pk priamry key (klient_id));
create table miejscowosc (miejscowosc_id serial, nazwa varchar(30), constraint miejscowosc_pk priamry key (miejscowosc_id));
create table wojewodztwo (wojewodztwo_id serial, nazwa varchar(30), constraint wojewodztwo_pk priamry key (wojewodztwo_id));
chce stworzyc relacje miedzy klient.miejscowosc_id a miejscowosc.miejscowosc_id i klient.wojwodztwo_id a wojewodztwo.wojewodztwo_id
probowalem poleceniem alter table klient constraint klient_miejscowosc_id_fk foreign key (miejscowosc_id) references miejscowosc (miejscowosc_id);
lecz wyskakuje mi blad can't create table 'ksiegarnia_internetowa.#sql-adc-2
#2
Napisany 21 październik 2010 - 11:32
Wykonaj wcześniej:
alter table klient modify miejscowosc_id bigint(20) unsigned NOT NULL;
Kolumny, które łączysz kluczem obcym, muszą być tego samego typu. U Ciebie jedna to bigint(20) unsigned a druga int(11).
Edit.
Żeby być precyzyjnym, to w tym przypadku nawet nie o typ chodzi, co o wielkość kolumny. Więcej informacji oczywiście w dokumentacji MySQL:
http://dev.mysql.com...onstraints.html
alter table klient modify miejscowosc_id bigint(20) unsigned NOT NULL;
Kolumny, które łączysz kluczem obcym, muszą być tego samego typu. U Ciebie jedna to bigint(20) unsigned a druga int(11).
Edit.
Żeby być precyzyjnym, to w tym przypadku nawet nie o typ chodzi, co o wielkość kolumny. Więcej informacji oczywiście w dokumentacji MySQL:
http://dev.mysql.com...onstraints.html
Optymalizacja MySQL - mysql.ksiazek.info
1 Użytkowników czyta ten temat
0 użytkowników, 1 gości, 0 anonimowych użytkowników












