1064 SQL workbench forward engineer error - mysql

When i try to use the forward enginner function in sql workbench i get this error at the final step. Have any idea why?
Executing SQL script in server
ERROR: Error 1064: 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 ')
REFERENCES `mydb`.`Account` ()
ON DELETE NO ACTION
ON UPDATE NO AC' at line 13
SQL Code:
-- -----------------------------------------------------
-- Table `mydb`.`ContactDetail`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`ContactDetail` (
`ContactDetailId` INT NOT NULL AUTO_INCREMENT COMMENT '',
`AccountId` VARCHAR(45) NOT NULL COMMENT '',
`Name` VARCHAR(45) NOT NULL COMMENT '',
`FirstName` VARCHAR(45) NOT NULL COMMENT '',
`Sex` ENUM('male', 'female') NOT NULL COMMENT '',
PRIMARY KEY (`ContactDetailId`) COMMENT '',
UNIQUE INDEX `ContactDetailId_UNIQUE` (`ContactDetailId` ASC) COMMENT '',
CONSTRAINT `AccountId`
FOREIGN KEY ()
REFERENCES `mydb`.`Account` ()
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
SQL script execution finished: statements: 6 succeeded, 1 failed
Fetching back view definitions in final form.
Nothing to fetch

Related

MySQL Error Code 1064 from workbench when create a table

I am trying to create a table using MySQL workbench, but the error msg shows this error. Check online, it shows " often due to using reserved words, missing data in the database, or mistyped/obsolete commands. " But, I did not use any reserved words or missing data. So not sure why this error happens. Thanks!
Operation failed: There was an error while applying the SQL script to the database.
Executing:
CREATE TABLE `assign`.`users` (
`id` INT NOT NULL AUTO_INCREMENT,
`email` VARCHAR(128) NOT NULL,
`nickname` VARCHAR(255) NOT NULL,
`password` VARCHAR(128) NOT NULL,
`created_at` VARCHAR(45) NOT NULL DEFAULT 'CURRENT_TIMESTAMP()',
PRIMARY KEY (`id`),
UNIQUE INDEX `email_UNIQUE` (`email` ASC) VISIBLE)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
ERROR 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 ')
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8' at line 8

Generated SQL script from workbench doesn`t work on MariaDB server

I created a scheme in mysql workbench and exported this scheme into SQL code.
.
When I want to generate table user on my server I am getting error.
Script:
CREATE TABLE IF NOT EXISTS 'user' (
'id' INT NOT NULL AUTO_INCREMENT,
'registerDate' TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
'login' VARCHAR(255) NOT NULL,
'password' VARCHAR(255) NOT NULL,
'status' TINYINT NOT NULL,
'credits' INT NOT NULL DEFAULT 0,
PRIMARY KEY ('id'),
UNIQUE INDEX 'login_UNIQUE' ('login' ASC) VISIBLE)
ENGINE = InnoDB;
Error #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 ''user' ( 'id' INT NOT NULL AUTO_INCREMENT, 'registerDate' TIMESTAMP NOT NU' at line 1
I dont understand where is an error? I didnt see anything wrong.
Version on server: 10.1.32-MariaDB

Error forward engineer SQL DB to phpmyadmin ERROR

before you say do some google i did for 1 and half hours straight and i still haven't found a fix for this issue please if you have any knowledge about this issue share your answers
Executing SQL script in server
ERROR: Error 1064: 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 'VISIBLE,
CONSTRAINT `fk_Doctors_department1`
FOREIGN KEY (`department_name' at line 10
SQL Code:
-- -----------------------------------------------------
-- Table `GPMS_DB`.`Doctors`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `GPMS_DB`.`Doctors` (
`id` INT NOT NULL,
`F_name` VARCHAR(45) NULL,
`L_name` VARCHAR(45) NULL,
`department_name` VARCHAR(20) NOT NULL,
PRIMARY KEY (`id`, `department_name`),
INDEX `fk_Doctors_department1_idx` (`department_name` ASC) VISIBLE,
CONSTRAINT `fk_Doctors_department1`
FOREIGN KEY (`department_name`)
REFERENCES `GPMS_DB`.`department` (`name`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
SQL script execution finished: statements: 8 succeeded, 1 failed

Error 1064 in SQL script while exporting from MySql workbench

Getting an error in the SQL script while exporting a model from MySQL workbench. Been looking around for a bit but can't find any answers that could help in this specific case.
Trying to export a script created in MySQL workbench to phpMyAdmin. Can anyone see what is wrong with this part of the script?
Executing SQL script in server
ERROR: Error 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 ')
REFERENCES mydb.Staff ()
ON DELETE NO ACTION
ON UPDATE NO ACTI' at line 15
SQL Code
-- -----------------------------------------------------
-- Table `mydb`.`course`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`course` (
`idcourse` INT NOT NULL AUTO_INCREMENT,
`title` VARCHAR(45) NOT NULL,
`describtion` VARCHAR(45) NOT NULL,
`week start` DATE NOT NULL,
`week end` DATE NOT NULL,
`ECTS` INT NOT NULL,
`course responsible` VARCHAR(45) NOT NULL,
`level` VARCHAR(45) NOT NULL,
PRIMARY KEY (`idcourse`),
CONSTRAINT `course responsible`
FOREIGN KEY ()
REFERENCES `mydb`.`Staff` ()
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `level`
FOREIGN KEY ()
REFERENCES `mydb`.`Level` ()
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
Check the foreign key syntax
CREATE TABLE <table_name>(
column1 data_type[(size)] ,
column2 data_type[(size)] ,
constraint(constraint_name)
FOREIGN KEY [column1,column2...]
REFERENCES [primary_key_table] (column_list_of_primary_key_table) ...);

MySQL Workbench Error 1064

everyone! I'm newbie to MySQL. I've created a new model using Workbench tools(I mean, that I haven't written any string of code by myself).
When trying to forward engineer it I get:
Executing SQL script in server
ERROR: Error 1064: 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 'COMMENT '')
ENGINE = InnoDB' at line 8
SQL Code:
-- -----------------------------------------------------
-- Table `university`.`CITY`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `university`.`CITY` (
`ID_CITY` INT NOT NULL COMMENT '',
`CNAME` TEXT(15) NULL COMMENT '',
`POPULATION` INT NULL COMMENT '',
PRIMARY KEY (`ID_CITY`) COMMENT '')
ENGINE = InnoDB
SQL script execution finished: statements: 5 succeeded, 1 failed
Fetching back view definitions in final form.
Nothing to fetch
Moreover, when trying to forward engineer default Workbench model "sakila_full" i get the same thing:
Executing SQL script in server
ERROR: Error 1064: 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 'COMMENT '',
INDEX `idx_actor_last_name` (`last_name` ASC) COMMENT '')
ENGINE ' at line 9
SQL Code:
-- -----------------------------------------------------
-- Table `sakila`.`actor`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `sakila`.`actor` (
`actor_id` SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '',
`first_name` VARCHAR(45) NOT NULL COMMENT '',
`last_name` VARCHAR(45) NOT NULL COMMENT '',
`last_update` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '',
PRIMARY KEY (`actor_id`) COMMENT '',
INDEX `idx_actor_last_name` (`last_name` ASC) COMMENT '')
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
SQL script execution finished: statements: 5 succeeded, 1 failed
Fetching back view definitions in final form.
Could not get definition for sakila.customer_list from server
Could not get definition for sakila.film_list from server
Could not get definition for sakila.nicer_but_slower_film_list from server
Could not get definition for sakila.staff_list from server
Could not get definition for sakila.sales_by_store from server
Could not get definition for sakila.sales_by_film_category from server
Could not get definition for sakila.actor_info from server
7 views were read back.
Thanks in advance!
Well, the BIG probleme is that Mysql Workbench adds itself indexes comments that generate an error, when using "Forward Engineer" or "Synchronize Model"
This problem did not exist when I was using version 6.0.
It looks like you've taken the COMMENT strings a little too far. According to the MySQL CREATE TABLE syntax, a COMMENT attribute is only permitted on a column definition. That means it's invalid on the INDEX or PRIMARY KEY definitions you have listed near the end of your CREATE statements.
The COMMENT '' aren't necessary and can be omitted entirely, especially since you are leaving them blank. Otherwise, they would be used for a little bit of extra human-readable metadata on your column definitions.
To get this working with what you have, remove the COMMENT attributes from your index and primary key definitions.
CREATE TABLE IF NOT EXISTS `university`.`CITY` (
`ID_CITY` INT NOT NULL COMMENT '',
`CNAME` TEXT(15) NULL COMMENT '',
`POPULATION` INT NULL COMMENT '',
-- No COMMENT on PK
PRIMARY KEY (`ID_CITY`)
) ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS `sakila`.`actor` (
`actor_id` SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '',
`first_name` VARCHAR(45) NOT NULL COMMENT '',
`last_name` VARCHAR(45) NOT NULL COMMENT '',
`last_update` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '',
-- No COMMENT on PK or INDEX
PRIMARY KEY (`actor_id`),
INDEX `idx_actor_last_name` (`last_name` ASC)
) ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Or the whole thing without any blank COMMENTs:
CREATE TABLE IF NOT EXISTS `university`.`CITY` (
`ID_CITY` INT NOT NULL COMMENT 'A comment that is not blank!',
`CNAME` TEXT(15) NULL,
`POPULATION` INT NULL,
PRIMARY KEY (`ID_CITY`)
) ENGINE = InnoDB;
(Same for the other table)
MySQL is generally quite good at pointing you directly to the source of your syntax error with the error message:
check the manual that corresponds to your MySQL server version for the right syntax to use near 'COMMENT ''),
With the exception of errors occurring at the end of the statement, which get a little ambiguous, the right syntax to use near will show you exactly what's amiss. In the above case, the COMMENT '') should direct you to the only COMMENT attribute followed by a ), which was the one at PRIMARY KEY. From there, check the manual (linked above) for legal syntax in each segment of your statement.
Remove "VISIBLE" and "INVISIBLE" words from all INDEX