Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Can't create table. InnoDB, problem z FOREIGN KEY?
Forum PHP.pl > Forum > Bazy danych > MySQL
rafalp
  1. CREATE TABLE friends (
  2. FK_user_id BIGINT NOT NULL,
  3. FK_friend_id BIGINT NOT NULL,
  4. STATUS TINYINT UNSIGNED NULL DEFAULT 0,
  5.  
  6. FOREIGN KEY(FK_user_id)
  7. REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE,
  8. FOREIGN KEY(FK_friend_id)
  9. REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE
  10. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;


#1005 - Can't create table '.\folder\friends.frm' (errno: 150)

Bez "ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;" -działa.

Dodam że typy pól FK_user_id - user_id są takie same oraz z "PRIMARY KEY ( FK_user_id )" także nie działa
osiris
jesli dobrze pamietam to otrzymywalem podobny komunikat gdy zapominalem utworzyc indeksy w tabelach do ktorych odnosza sie klucze obce
rafalp
Index'y w tabeli relacyjnej były.

Problem rozwiązany
Chodziło jeszcze o typy, uważałem je za takie same bo były BIGINT ale do tego tabela relacyjna miała jeszcze UNSIGNED.
fruger
Mam podobny problem.
Mógłbyś dokładniej opisać jego rozwiązanie?

Mój kod:
CREATE TABLE kraj(
id int(5) PRIMARY KEY auto_increment,
nazwa varchar(30) NOT NULL UNIQUE
)engine=innoDB;

CREATE TABLE poczta(
id int(10) PRIMARY KEY auto_increment,
numer varchar(6) NOT NULL,
miejscowosc varchar(30) NOT NULL,
id_kraju int,
CONSTRAINTS fk_kraj FOREIGN KEY (id_kraju) REFERENCES id(kraj)
)engine=innoDB;"
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.