Can't create table errno: 150

0

Witam

Tworze tabelkę w której jedna z kolumn jest referencją do innej tabeli

CREATE TABLE `news`(
  id INT AUTO_INCREMENT PRIMARY KEY,
  `author_id` varchar(80) NOT NULL,
  `title` varchar(250) NOT NULL,
  `content` TEXT NOT NULL,
  `unixtime` int(10) unsigned NOT NULL default '1289326107',
  `type` int(2) unsigned NOT NULL default '0',
  FOREIGN KEY (author_id) REFERENCES tabelka5(id)
) ENGINE = InnoDB;

wystepuje taki oto problem...

Can't create table './konto/news.frm' (errno: 150)

oczywiście rozwiązałem ten problem, jest to spowodowane z tym ze tabelka do której chcę zrobić powiązanie ma w sobie juz rekordy moje pytanie brzmi czy można jakoś zrobić to w sposób bez usuwania tabeli/rekordow z niej?

0

nie możesz utworzyć tabeli, która już istnieje. zmiany w strukturze tabeli zrobisz przez ALTER, wyczyścisz tabelę przez TRUNCATE (a jeśli przeszkadza FK, to przez DELETE). nie ma potrzeby tworzyć tabeli od nowa.
ale jeśli jesteś uparty, to zrób DROP TABLE.
FK nie obowiązuje dla kluczy o wartości null. Masz akurat w polu not null, ale dla pustej tabeli nie ma to żadnego znaczenia: nie ma danych - nie trzeba ich walidować przez FK. Dlatego wydaje mi się, że błąd leży w innym miejscu.

btw "tabelka5" - świetna nazwa...

no i złe forum - przenoszę posta do baz danych.

1 użytkowników online, w tym zalogowanych: 0, gości: 1