MySQL + InnoDB + Foreign key i problem
Flipi - 17-06-2007 00:18
MySQL + InnoDB + Foreign key i problem
Witam,
Stworzy?em sobie baz?, w niej kilka tabel:
CREATE TABLE bip_admin_user ( id_bip_user INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, id_wydzial INTEGER UNSIGNED NOT NULL, id_stanowisko INTEGER UNSIGNED NOT NULL, login VARCHAR(50) NULL, haslo VARCHAR(50) NULL, dostep CHAR(1) NULL, imie VARCHAR(100) NULL, nazwisko VARCHAR(100) NULL, adres VARCHAR(255) NULL, telefon VARCHAR(100) NULL, fax VARCHAR(100) NULL, email VARCHAR(100) NULL, PRIMARY KEY(id_bip_user), INDEX bip_user_FKIndex1(id_stanowisko), INDEX bip_user_FKIndex2(id_wydzial), FOREIGN KEY(id_stanowisko) REFERENCES bip_stanowisko(id_bip_stanowisko) ON DELETE CASCADE ON UPDATE NO ACTION, FOREIGN KEY(id_wydzial) REFERENCES bip_wydzial(id_bip_wydzial) ON DELETE CASCADE ON UPDATE NO ACTION ) TYPE=InnoDB;
CREATE TABLE bip_poddzialy ( id_bip_poddzialy INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, id_dzial INTEGER UNSIGNED NOT NULL, nazwa VARCHAR(255) NULL, typ CHAR(1) NULL, kol INTEGER UNSIGNED NULL, PRIMARY KEY(id_bip_poddzialy), INDEX bip_poddzialy_FKIndex1(id_dzial), FOREIGN KEY(id_dzial) REFERENCES bip_dzialy(id_bip_dzialy) ON DELETE CASCADE ON UPDATE NO ACTION ) TYPE=InnoDB;
I wszystko sz?o bez problemu, ale przy tworzeniu poni?szej tabeli wyskakuje b??d:
Can't create table './bip_mso_war/bip_publikacje.frm' (errno: 150)
CREATE TABLE bip_publikacje ( id_bip_publikacje INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, id_poddzial INTEGER UNSIGNED NOT NULL, id_publikujacy INTEGER UNSIGNED NOT NULL, id_modyfik INTEGER UNSIGNED NULL, id_autor INTEGER UNSIGNED NOT NULL, nazwa_pub VARCHAR(255) NULL, tresc TEXT NULL, rodzic INTEGER UNSIGNED NULL, odslony INTEGER UNSIGNED NULL, data_dod INTEGER UNSIGNED NULL, data_mod INTEGER UNSIGNED NULL, kolejnosc INTEGER UNSIGNED NULL, PRIMARY KEY(id_bip_publikacje), INDEX bip_publikacje_FKIndex1(id_autor), INDEX bip_publikacje_FKIndex2(id_modyfik), INDEX bip_publikacje_FKIndex3(id_publikujacy), INDEX bip_publikacje_FKIndex4(id_poddzial), FOREIGN KEY(id_autor) REFERENCES bip_admin_user(id_bip_user) ON DELETE SET NULL ON UPDATE NO ACTION, FOREIGN KEY(id_modyfik) REFERENCES bip_admin_user(id_bip_user) ON DELETE SET NULL ON UPDATE NO ACTION, FOREIGN KEY(id_publikujacy) REFERENCES bip_admin_user(id_bip_user) ON DELETE SET NULL ON UPDATE NO ACTION, FOREIGN KEY(id_poddzial) REFERENCES bip_poddzialy(id_bip_poddzialy) ON DELETE CASCADE ON UPDATE NO ACTION ) TYPE=InnoDB;
Googluje ju? ponad godzin? i owszem na stronie MySQL pojawia si? niby jakie? rozwi?zanie, ale jako? nie umiem go prze?o?y? do swojego kodu.
Jakby kto? móg? wskaza? co i gdzie jest nie ta.
Z góry dzi?ki za pomoc. Pozdrawiam, Flipi
Maciek Dobrzanski - 17-06-2007 00:18
"Flipi" <flipi.no@spam.poczta.fm> wrote in message news:f4j0n6$re1$1@atlantis.news.tpi.pl...
> Googluje ju? ponad godzin? i owszem na stronie MySQL pojawia si? niby > jakie? rozwi?zanie, ale jako? nie umiem go prze?o?y? do swojego kodu.
Próbujesz wykona? SET NULL na kolumnach NOT NULL - id_autor, id_modyfik, id_publikujacy, id_podzial.
Maciek
Flipi - 17-06-2007 00:18
Maciek Dobrzanski pisze: > "Flipi" <flipi.no@spam.poczta.fm> wrote in message > news:f4j0n6$re1$1@atlantis.news.tpi.pl... > >> Googluje ju? ponad godzin? i owszem na stronie MySQL pojawia si? niby >> jakie? rozwi?zanie, ale jako? nie umiem go prze?o?y? do swojego kodu. > > Próbujesz wykona? SET NULL na kolumnach NOT NULL - id_autor, id_modyfik, > id_publikujacy, id_podzial. > > Maciek No tak, dzi?ki za pomoc :)
Pozdrawiam, Flipi
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[mysql] =?ISO-8859-2?Q?Za=E6mienie=2E=2E=2E_jak_wy=B6wietli=E6?==?ISO-8859-2?Q?=2E=2E=2E?=
[mysql] =?ISO-8859-2?Q?wielko=B6=E6_bazy_a_stabilno=B6=E6=2C?==?ISO-8859-2?Q?_podzia=B3_du=BFej_bazy_a_powi=B1zania_tabel?=
[MySQL] =?ISO-8859-2?Q?Wy=B6wietlenie_kolejnej_pozycji=2C_?==?ISO-8859-2?Q?jak=B1_mia=B3by_dany_rekord=2C_gdybym_czyta=B3 _?==?ISO-8859-2?Q?wg_konkretnych_kryteri=F3w=2E_Da_si=EA_=3F?=
[mysql 4.0.x] przenoszenie kolum =?ISO-8859-2?Q?mi=EAdzy_bazam?==?ISO-8859-2?Q?i_cd_=2E=2E=2E_?=
[MySQL] =?ISO-8859-2?Q?z=B3=B1czenie_tabeli_u=BFytkownik_i?==?ISO-8859-2?Q?_zdj=EAcia_z_wyborem_zdj=EAcia_domy=B6lnego?=
[MySQL] Jak =?ISO-8859-2?Q?wpisa=E6_do_tabeli_pozycje_dl?==?ISO-8859-2?Q?a_wierszy_gdybym_te_wiersze_wybiera=B3_w_ok?== ?ISO-8859-2?Q?re=B6lonej_kolejno=B6ci_=3F?=
Gdzie MySQL 4.1, a gdzie 5.0?
[MySQL 4.0...4.1] zabezpieczenie przed =?ISO-8859-2?Q?jednoczesn?==?ISO-8859-2?Q?=B1_edycj=B1?=
[MS SQL] "set names" (mySQL) w MS SQL
[mysql 5.x] jak =?ISO-8859-2?Q?zrealizowa=E6_zapytanie=3F_cz?==?ISO-8859-2?Q?yli_podzapytanie_i_wi=EAcej_ni=BF_jeden_rz=B1? ==?ISO-8859-2?Q?d_wynik=F3w?=
zanotowane.pldoc.pisz.plpdf.pisz.plquentinho.opx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|