2015-04-09 3 views
0

может быть, мой вопрос глупый ... но я couln't нашел проблему, когда я делаю:Вы знаете, почему mysql не удается создать эту таблицу?

CREATE TABLE prefixes (
id INT(11) NOT NULL AUTO_INCREMENT, 
PRIMARY KEY(id), 
INDEX id (id)) 
ENGINE = InnoDB AUTO_INCREMENT = 1 
DEFAULT CHARACTER SET = utf8; 

Mysql говорит:

ERROR 1005 (HY000): Can't create table 'sms.prefixes' (errno: 150) 

я хоть что старый внешний ключ или что-то указав/используя эту таблицу, но я сделал экспорт (полный) и искал в экспорте для ключевых «префиксов», и я ничего не нашел, поэтому проблема с внешним ключом или что-то еще, если я создаю ту же таблицу, но назову ее «prefixes2», или что-то еще ЭТО РАБОТАЕТ !!! Пожалуйста, если у кого-то есть ключ, возможно, это может быть полезно.

Спасибо!

ответ

1

Попробуйте это:

CREATE TABLE `sms.prefixes` (
id INT(11) NOT NULL AUTO_INCREMENT, 
PRIMARY KEY(id), 
INDEX id (id)) 
ENGINE = InnoDB AUTO_INCREMENT = 1 
DEFAULT CHARACTER SET = utf8; 

SQL FIDDLE DEMO

+0

Большое спасибо за помощь, я пробовал точно так же, как вы сказали, но не повезло, я покажу вам ошибку: ERROR 1005 (HY000): Невозможно создать таблицу sms.prefixes (errno: 150) mysql> SELECT VERSION(); + ---------------------- + | ВЕРСИЯ() | + ---------------------- + | 5.5.38-0 + wheezy1-log | + ---------------------- + 1 ряд в комплекте (0.00 сек) mysql> – mzalazar

+0

если я изменю имя, это сработает, может быть, оно может 't бежать или что-то, я смотрю всюду в базе данных для слова «префиксы», но ничего, никаких ссылок или чего-то еще, это становится странным хешем :) – mzalazar

+0

@mzalazar: - Обновлен мой ответ. Я не уверен, но похоже, что вы пытаетесь создать таблицу 'sms.prefixes' не' prefixes'. –

0

Я сделал это:

SELECT * 
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS 
WHERE CONSTRAINT_TYPE = 'FOREIGN KEY'; 

, но я не могу найти какой-либо иностранный ключ, указывающий (или имени) "префиксы" или что-то подобное , Это сводит меня с ума.

+0

И нет никакой ИНДЕКС во всей базе данных, которая могла бы столкнуться с «префиксами» или что-то в этом роде, я проверил. Я думаю, мне нужно изменить InnoDB для MyISAM, чтобы решить эту странную проблему, я не вижу другого способа решить эту проблему. – mzalazar

+0

Ну ... я создал таблицу 'prefixes' с помощью MyISAM-движка, мне не повезло использовать InnoDB, и нет ссылок на старую таблицу, все еще задаваясь вопросом, что может произойти. Это одна большая причина, по которой мне не нравится MySQL, и заставляю меня любить (даже больше) PostgreSQL: D – mzalazar