MYSQL # 1064 ошибка не может найти причину

0

Я запускаю следующий запрос на mysql, который запускался из XAMPP

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';

DROP SCHEMA IF EXISTS htmlProject;
CREATE SCHEMA htmlProject;
USE htmlProject;

--
-- Table structure for table 'actor'
--
CREATE TABLE ACTORS (
  actor_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
  actor_name VARCHAR(50) NOT NULL,
  joined_on DATETIME NOT NULL,
  actor_password VARCHAR(50) NOT NULL, 
  PRIMARY KEY  (actor_id),
 )ENGINE=InnoDB DEFAULT CHARSET=utf8;

 CREATE TABLE TAGS (
  tag_id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,
  tag_name VARCHAR(25) NOT NULL,
  PRIMARY KEY  (tag_id)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE FILES (
  files_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
  files_name VARCHAR(45) NOT NULL,
  uploaded_on DATETIME NOT NULL,
  PRIMARY KEY (files_id),
  actor_id SMALLINT UNSIGNED NOT NULL,
  KEY idx_fk_actor_id (actor_id),
  CONSTRAINT 'fk_files_actors' FOREIGN KEY (actor_id) REFERENCES ACTORS(actor_id) ON DELETE RESTRICT ON UPDATE CASCADE
  )ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE FILESTAG (
  files_tag_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
  tag_id SMALLINT UNSIGNED NOT NULL,
  files_id SMALLINT UNSIGNED NOT NULL,
  PRIMARY KEY (files_tag_id)
  KEY idx_fk_tag_id (tag_id),
  KEY idx_fk_files_id (files_id),
  CONSTRAINT 'fk_files_tags' FOREIGN KEY (tag_id) REFERENCES TAGS (tag_id) ON DELETE RESTRICT ON UPDATE CASCADE, 
  CONSTRAINT 'fk_tags_files' FOREIGN KEY (files_id) REFERENCES FILES (files_id) ON DELETE RESTRICT ON UPDATE CASCADE
 )ENGINE=InnoDB DEFAULT CHARSET=utf8;




SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

Но все же я получаю сообщение об ошибке 1064 на следующих строках

ERROR 1064 (42000) at line 27 in file: 'C:\Users\hanyd\Desktop\HTML project\html_project_query2.sql': 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 ')ENGINE=InnoDB DEFAULT CHARSET=utf8' at line 7
Query OK, 0 rows affected (0.18 sec)

Query OK, 0 rows affected (0.17 sec)

ERROR 1064 (42000) at line 53 in file: 'C:\Users\hanyd\Desktop\HTML project\html_project_query2.sql': 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 '(files_tag_id),
  KEY idx_fk_tag_id (tag_id),
  KEY idx_fk_files_id (files_id),
' at line 5 

Я абсолютно не знаю, почему это происходит, хотя я уже писал подобные запросы с абсолютно никакой ошибкой такого рода. Что меня тут бросает в глаза?

Теги:

1 ответ

2
Лучший ответ

Вам не хватает запятой:

CREATE TABLE FILESTAG (
 files_tag_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
 tag_id SMALLINT UNSIGNED NOT NULL,
 files_id SMALLINT UNSIGNED NOT NULL   <---- Add comma here

И у вас есть запятая, где ее не должно быть:

CREATE TABLE ACTORS (
  actor_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
  actor_name VARCHAR(50) NOT NULL,
  joined_on DATETIME NOT NULL,
  actor_password VARCHAR(50) NOT NULL, 
  PRIMARY KEY  (actor_id),             <--- REMOVE this comma
  )ENGINE=InnoDB DEFAULT CHARSET=utf8;
  • 0
    Ладно ладно я перепроверю синтаксис
  • 0
    Кажется, это ошибка, у меня есть несколько все еще непроверенных синтаксических ошибок, ужасно жаль, что я потратил ваше время, кажется, мои чувства сегодня не в лучшем виде. Спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню