2015-09-10 4 views
0

Я хочу, чтобы создать таблицу в MySQL: -Mysql ошибка синтаксиса для создания таблицы

create table app_own(app_id bigint(20) unsigned NOT NULL AUTO_INCREMENT, 
sp_id bigint(20), 
title varchar(30), 
description varchar(60), 
details LONGTEXT(1000), 
primary key(app_id), 
FOREIGN KEY (user_id) REFERENCES student(sp_id)); 

где APP_ID является первичным ключом и SP_ID является внешним ключом справки из студенческого стола ..

, но я получаю сообщение об ошибке: -

ERROR 1064 (42000): You have an error in your SQL syntax; check the 
    manual that corresponds to your MySQL server version for the right 
    syntax to use near '(1000)0,primary key(app_id),FOREIGN KEY (sp_id) 
REFERENCE' at line 1 

почему ошибка происходя?

ответ

1

попытаться запустить этот: -

use db; 
CREATE TABLE parent (
    id INT UNSIGNED NOT NULL, 
    PRIMARY KEY (id) 
) ; 

CREATE TABLE Persons 
(
PID int UNSIGNED NOT NULL AUTO_INCREMENT, 
LastName varchar(255) NOT NULL, 
FirstName varchar(255), 
Address varchar(255), 
City longtext, 
PRIMARY KEY (PID), 
FOREIGN KEY (PID) 
     REFERENCES parent(id) 
ON DELETE CASCADE 
); 

LONGTEXT [Набор символов charset_name] [COLLATE collation_name]

Столбец TEXT с максимальной длиной 4294967295 или 4 Гб (232 - 1) символов. Эффективная максимальная длина меньше, если значение содержит многобайтовые символы. Эффективная максимальная длина столбцов LONGTEXT также зависит от настроенного максимального размера пакета в протоколе клиент/сервер и доступной памяти. Каждое значение LONGTEXT сохраняется с использованием префикса длиной 4 байта, который указывает количество байтов в значении.

+0

Я пробовал ваш код. У меня есть сообщение: - ERROR 1005 (HY000): Не удается создать таблицу «mydatabase.persons» (errno: 150) – Salini

+0

У вас используется Unsigned для первичного ключа родительской таблицы –

+0

yes .... Я использовал Unsigned для первичного ключа родительской таблицы – Salini

0

Вы должны использовать varchar(1000) вместо longtext(1000).

Кроме того user_id столбец не существует в вас таблица.

0

В этом контексте вы не можете указать LONGTEXT. Посмотрите в manual.

Изменить код:

create table app_own(app_id bigint(20) unsigned NOT NULL AUTO_INCREMENT, 
sp_id bigint(20), 
title varchar(30), 
description varchar(60), 
details LONGTEXT, 
primary key(app_id), 
FOREIGN KEY (user_id) REFERENCES student(sp_id)); 
0

Кроме того, вы не должны использовать пробелы между ними в скобках на первичный ключ (APP_ID).

Смежные вопросы