2014-11-16 2 views
0

У меня есть 2 таблицы, и я хочу ссылаться на id. Код показан ниже. Я получаю: «Ошибка создания таблицы: не удается добавить ограничение внешнего ключа». Я думаю, что это связано с автоматическим приращением. Может кто-нибудь помочь? CheersMySQL: «Ошибка создания таблицы: не удается добавить ограничение внешнего ключа»

$polls = "CREATE TABLE IF NOT EXISTS `polls` ( 
    `id_poll` INT(10) AUTO_INCREMENT, 
    `descricao` VARCHAR(255), 
    `password` VARCHAR(255), 
    `privacidade` INT(1), 
    primary key (id_poll) 
    )"; 

if ($conn->query($polls) === TRUE) { 
    echo "Table polls: CHECK!"; 
} else { 
    echo "Error creating table: " . $conn->error; 
} 


$options = "CREATE TABLE IF NOT EXISTS `opcoes` ( 
    `id_opcao` INT(10) AUTO_INCREMENT, 
    `id_poll` INT(10), 
    `descricao` VARCHAR(255), 
    primary key (id_opcao), 
    FOREIGN KEY (id_poll) REFERENCES polls(id_poll) 
    )"; 

if ($conn->query($opcoes) === TRUE) { 
    echo "Table opcoes: CHECK!"; 
} else { 
    echo "Error creating table: " . $conn->error; 
} 
+0

эти два заявления работают для меня. это то, что вся ошибка вы вернетесь? –

+0

ли первая таблица уже существует, когда вы запускаете это? он существует точно так, как указано в коде выше? –

+0

Я понял! id_poll должен быть NOT NULL для обеих таблиц. Ty –

ответ

0

id_poll должен быть NOT NULL на обеих таблицах. Вот код.

$polls = "CREATE TABLE IF NOT EXISTS `polls` ( 
    `id_poll` INT(10) NOT NULL AUTO_INCREMENT, 
    `descricao` VARCHAR(255), 
    `password` VARCHAR(255), 
    `privacidade` INT(1), 
    primary key (id_poll) 
    )"; 

if ($conn->query($polls) === TRUE) { 
    echo "Table polls: CHECK!"; 
} else { 
    echo "Error creating table: " . $conn->error; 
} 


$options = "CREATE TABLE IF NOT EXISTS `opcoes` ( 
    `id_opcao` INT(10) AUTO_INCREMENT, 
    `id_polls` INT(10) NOT NULL, 
    `descricao` VARCHAR(255), 
    primary key (id_opcao), 
    FOREIGN KEY (id_polls) REFERENCES polls(id_poll) 
    )"; 

if ($conn->query($options) === TRUE) { 
    echo "Table opcoes: CHECK!"; 
} else { 
    echo "Error creating table: " . $conn->error; 
}