Что я должен изменить здесь, чтобы следующий код SQL работал? - PullRequest
0 голосов
/ 24 марта 2020

Здравствуйте, сообщество StackOverflow. У меня возникает следующая ошибка при выполнении этого запроса SQL: я создал весь этот код для создания некоторых таблиц, и код VisualStudio не показывает мне синтаксической ошибки. Что я должен изменить здесь?

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')

GO
CREATE TABLE SECCIO (
    seccio_codi INT(10) PRIMARY KEY,
    seccio' at line 10

Это мой код SQL: Возможно, это запятая или что-то еще, но я не могу найти реальную проблему здесь, так как все выглядит хорошо .

CREATE TABLE SOCI (
    soci_nif VARCHAR(9) PRIMARY KEY,
    soci_nom VARCHAR(15),
    soci_cog1 VARCHAR(15),
    soci_cog2 VARCHAR(15),
    soci_adreca VARCHAR(30),
    soci_codipostal INT(5),
    soci_poblacio VARCHAR(15),
    soci_telefon INT(9) UNIQUE,
)
GO
CREATE TABLE REBUT (
    numero_rebut INT(20) PRIMARY KEY,
    soci_nif INT(15) UNIQUE,
    data_rebut DATE DEFAULT GETDATE, 
    estat_rebut VARCHAR(7), CHECK (estat_rebut IN('pagat','pendent','rebut')),
    importe INT(9) CHECK (importe > 0),
    CONSTRAINT fk_numero_rebut FOREIGN KEY (soci_nif) REFERENCES SOCI(soci_nif)
)
GO
CREATE TABLE SECCIO (
    seccio_codi INT(10) PRIMARY KEY,
    seccio_nom VARCHAR(20) UNIQUE,
    seccio_telefon INT(9) UNIQUE,
    seccio_fax INT(9) UNIQUE,
    seccio_e_mail VARCHAR(20) UNIQUE,
    junta_nif VARCHAR(9) UNIQUE,
    CONSTRAINT fk_junta_nif FOREIGN KEY (junta_nif) REFERENCES JUNTA(junta_nif)
)
GO
CREATE TABLE JUNTA (
    junta_nif VARCHAR(9) PRIMARY KEY,
    junta_nom VARCHAR(10) UNIQUE,
    junta_cog1 VARCHAR(15),
    junta_cog2 VARCHAR(15),
    junta_adreca VARCHAR(30),
    junta_codi_postal INT(5),
    junta_poblacio VARCHAR(10),
    junta_telefon INT(9) UNIQUE,
    junta_mobil INT(9) UNIQUE
)
GO
CREATE TABLE EQUIP (
    equip_codi VARCHAR(4) PRIMARY KEY,
    equip_nom VARCHAR(9),
    equip_patrocinador VARCHAR(9),
    seccio_codi INT(5) UNIQUE,
    categoria_codi INT(4) UNIQUE,
    CONSTRAINT fk_seccio_codi FOREIGN KEY (seccio_codi) REFERENCES SECCIO(seccio_codi),
    CONSTRAINT fk_categoria_codi FOREIGN KEY (categoria_codi) REFERENCES CATEGORIA(categoria_codi)
)
GO
CREATE TABLE CATEGORIA(
    categoria_codi INT(4) PRIMARY KEY,
    nom_categoria VARCHAR(10)
)
GO
CREATE TABLE JUGADOR (
    jug_id VARCHAR(20) PRIMARY KEY,
    jugador_nom VARCHAR(10),
    jug_cog1 VARCHAR(15),
    jug_cog2 VARCHAR(15),
    jug_data_naixament DATE,
    equip_codi VARCHAR(4),
    CONSTRAINT fk_equip_codi FOREIGN KEY (equip_codi) REFERENCES EQUIP(equip_codi)
)
GO
CREATE TABLE NACIONALITAT(
    nac_sigles_id INT(4) PRIMARY KEY,
    nac_nom VARCHAR(3)
)
GO
CREATE TABLE NACIONALITATS_JUGADORS(
    jug_identificador VARCHAR(5) PRIMARY KEY,
    nacis_sigles_id VARCHAR(3) PRIMARY KEY,
    data_nacionalitat DATA,
    CONSTRAINT fk_jug_identificador FOREIGN KEY (jug_identificador) REFERENCES JUGADOR(jug_id),
    CONSTRAINT fk_nacis_sigles_id FOREIGN KEY (nacis_sigles_id) REFERENCES NACIONALITAT(nac_sigles_id)
)
GO
CREATE TABLE ENTRENADOR(
    entrenador_id VARCHAR(5) PRIMARY KEY,
    entrenador_nom VARCHAR(10),
    entrenador_cognoms VARCHAR(15)
)
GO
CREATE TABLE ABONATS(
    soci_nif VARCHAR(9) PRIMARY KEY,
    seccio_codi INT(10) PRIMARY KEY,
    data_soci_seccio DATE,
    CONSTRAINT fk_soci_nif FOREIGN KEY (soci_nif) REFERENCES SOCI(soci_nif),
    CONSTRAINT fk_seccio_codi FOREIGN KEY (seccio_codi) REFERENCES SECCIO(soccio_codi)
)
GO
CREATE TABLE TASCA_ENTRENADOR (
    entrenador_id VARCHAR(5) PRIMARY KEY,
    equip_codi VARCHAR(4) PRIMARY KEY,
    tasca VARCHAR(30),
    data_inici_tasca DATE DEFAULT GETDATE,
    CONSTRAINT fk_entrenador_id FOREIGN KEY (entrenador_id) REFERENCES ENTRENADOR(entrenador_id),
    CONSTRAINT fk_equip_codi FOREIGN KEY (equip_codi) REFERENCES EQUIP(equip_codi)
)

Заранее спасибо за помощь !!

1 Ответ

1 голос
/ 24 марта 2020

В первой таблице Create в конце слишком много запятой, поэтому замените ее на

, тогда в вашем коде слишком много ошибок для объяснения. Внешние ключи должны иметь уникальное имя.

Ссылка на таблицу и ссылку на столбец должна иметь одинаковый тип данных

Тип данных не существует, поэтому я поместил туда data_nacionalitat varchar (50)

Последний, но не менее Go между ними - SQL Сервер, и не работает в mysql, также у всех крит в конце должен быть символ semikolo9n

CREATE TABLE SOCI (
    soci_nif VARCHAR(9) PRIMARY KEY,
    soci_nom VARCHAR(15),
    soci_cog1 VARCHAR(15),
    soci_cog2 VARCHAR(15),
    soci_adreca VARCHAR(30),
    soci_codipostal INT(5),
    soci_poblacio VARCHAR(15),
    soci_telefon INT(9) UNIQUE
);
CREATE TABLE REBUT (
    numero_rebut INT(20) PRIMARY KEY,
    soci_nif VARCHAR(9) UNIQUE,
    data_rebut DATE , 
    estat_rebut VARCHAR(7), CHECK (estat_rebut IN('pagat','pendent','rebut')),
    importe INT(9) CHECK (importe > 0),
    CONSTRAINT fk_numero_rebut FOREIGN KEY (soci_nif) REFERENCES SOCI(soci_nif)
);
CREATE TABLE JUNTA (
    junta_nif VARCHAR(9) PRIMARY KEY,
    junta_nom VARCHAR(10) UNIQUE,
    junta_cog1 VARCHAR(15),
    junta_cog2 VARCHAR(15),
    junta_adreca VARCHAR(30),
    junta_codi_postal INT(5),
    junta_poblacio VARCHAR(10),
    junta_telefon INT(9) UNIQUE,
    junta_mobil INT(9) UNIQUE
);
CREATE TABLE SECCIO (
    seccio_codi INT(10) PRIMARY KEY,
    seccio_nom VARCHAR(20) UNIQUE,
    seccio_telefon INT(9) UNIQUE,
    seccio_fax INT(9) UNIQUE,
    seccio_e_mail VARCHAR(20) UNIQUE,
    junta_nif VARCHAR(9) UNIQUE,
    CONSTRAINT fk_junta_nif FOREIGN KEY (junta_nif) REFERENCES JUNTA(junta_nif)
);
CREATE TABLE CATEGORIA(
    categoria_codi INT(4) PRIMARY KEY,
    nom_categoria VARCHAR(10)
);
CREATE TABLE EQUIP (
    equip_codi VARCHAR(4) PRIMARY KEY,
    equip_nom VARCHAR(9),
    equip_patrocinador VARCHAR(9),
    seccio_codi INT(10) UNIQUE,
    categoria_codi INT(4) UNIQUE,
    CONSTRAINT fk_seccio_codi FOREIGN KEY (seccio_codi) REFERENCES SECCIO(seccio_codi),
    CONSTRAINT fk_categoria_codi FOREIGN KEY (categoria_codi) REFERENCES CATEGORIA(categoria_codi)
);
CREATE TABLE JUGADOR (
    jug_id VARCHAR(20) PRIMARY KEY,
    jugador_nom VARCHAR(10),
    jug_cog1 VARCHAR(15),
    jug_cog2 VARCHAR(15),
    jug_data_naixament DATE,
    equip_codi VARCHAR(4),
    CONSTRAINT fk_equip_codi FOREIGN KEY (equip_codi) REFERENCES EQUIP(equip_codi)
);
CREATE TABLE NACIONALITAT(
    nac_sigles_id INT(4) PRIMARY KEY,
    nac_nom VARCHAR(3)
);
CREATE TABLE NACIONALITATS_JUGADORS(
    jug_identificador VARCHAR(20) ,
    nacis_sigles_id INT(4) ,
    data_nacionalitat varchar(50),
    PRIMARY KEY (jug_identificador, nacis_sigles_id),
    CONSTRAINT fk_jug_identificador FOREIGN KEY (jug_identificador) REFERENCES JUGADOR(jug_id),
    CONSTRAINT fk_nacis_sigles_id FOREIGN KEY (nacis_sigles_id) REFERENCES NACIONALITAT(nac_sigles_id)
);
CREATE TABLE ENTRENADOR(
    entrenador_id VARCHAR(5) PRIMARY KEY,
    entrenador_nom VARCHAR(10),
    entrenador_cognoms VARCHAR(15)
);
CREATE TABLE ABONATS(
    soci_nif VARCHAR(9) ,
    seccio_codi INT(10) ,
    data_soci_seccio DATE,
    PRIMARY KEY (soci_nif, seccio_codi),
    CONSTRAINT fk_soci_nif FOREIGN KEY (soci_nif) REFERENCES SOCI(soci_nif),
    CONSTRAINT fk_seccio_codi2 FOREIGN KEY (seccio_codi) REFERENCES SECCIO(seccio_codi)
);
CREATE TABLE TASCA_ENTRENADOR (
    entrenador_id VARCHAR(5) ,
    equip_codi VARCHAR(4) ,
    tasca VARCHAR(30),
    data_inici_tasca DATE ,
    PRIMARY KEY (entrenador_id, equip_codi),
    CONSTRAINT fk_entrenador_id FOREIGN KEY (entrenador_id) REFERENCES ENTRENADOR(entrenador_id),
    CONSTRAINT fk_equip_codi2 FOREIGN KEY (equip_codi) REFERENCES EQUIP(equip_codi)
);

db <> скрипка здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...