2017-05-16 20 views
0

MySQL을 처음 사용하고 Workbench 6.3.9 Community Edition에서 버전 5.7.19-log (적어도 명령 행 클라이언트에서 얻은 것)를 실행 중입니다.Workbench에서 MySQL 테이블 생성 오류

Operation failed: There was an error while applying the SQL script to the database. 
Executing: 
CREATE TABLE `travelportaldb`.`user` (
    `user_id` INT GENERATED ALWAYS AS() VIRTUAL, 
    `name` VARCHAR(45) NOT NULL, 
    `account_id` VARCHAR(15) NULL, 
    `account_currency` CHAR(3) NULL, 
    `account_balance` DECIMAL NULL, 
    PRIMARY KEY (`user_id`)); 

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 ') VIRTUAL, 
    `name` VARCHAR(45) NOT NULL, 
    `account_id` VARCHAR(15) NULL, 
    `ac' at line 2 
SQL Statement: 
CREATE TABLE `travelportaldb`.`user` (
    `user_id` INT GENERATED ALWAYS AS() VIRTUAL, 
    `name` VARCHAR(45) NOT NULL, 
    `account_id` VARCHAR(15) NULL, 
    `account_currency` CHAR(3) NULL, 
    `account_balance` DECIMAL NULL, 
    PRIMARY KEY (`user_id`)) 

이 그것이 생성 된 스크립트는 다음과 같습니다 내 문제는 내가 생성 된 스크립트를 실행할 때, 그러나 그것은 나에게 다음과 같은 오류가 발생, UI를 사용하여 자동으로 생성 된 ID로 간단한 테이블을 만들려고 해요한다 :

CREATE TABLE `travelportaldb`.`user` (
    `user_id` INT GENERATED ALWAYS AS() VIRTUAL, 
    `name` VARCHAR(45) NOT NULL, 
    `account_id` VARCHAR(15) NULL, 
    `account_currency` CHAR(3) NULL, 
    `account_balance` DECIMAL NULL, 
    PRIMARY KEY (`user_id`)); 

무엇이 잘못 되었나요? 나는 오라클 백그라운드에서 왔고 쿼리는 자동 생성을 제외하고는 괜찮을 것 같다. 나는 별다른 생각이 없다.

도와주세요.

감사합니다. 당신은 MySQL의 워크 벤치에서 generated 플래그를 전환 할 때

+0

을하지만 ... 그것은 빈을 가지고 의미가 않습니다 정의? –

+0

Workbench가 수행하려고하는 것이 확실하지 않습니다. Mysql에서의 자동 증가는 다음과 같아야합니다 :'INT AUTO_INCREMENT' –

+0

'INT 생성 항상 (표현식)'<- 비어 있지 않은 표현식을 기대합니다. 생성 된 열에 대해서는 다음을 참조하십시오. https://dev.mysql.com/doc/refman/5.7/en/create-table-generated-columns.html – poncha

답변

0

열은 필드가 생성 된 컬럼에 필요한 옵션을 설정 할 수 있도록 약간 수정 한 것입니다 자세한 사항 :

여기

enter image description here

에서 가장 중요한 역할은 Expression 필드입니다. 생성 된 컬럼의 경우 생성에 사용되는 표현식을 지정해야합니다. 분명히 그렇게하지 않았기 때문에 생성 된 SQL에서 열 정의가 잘못되었습니다 (빈 괄호, 표현식이 있어야 함).

PS : 당신은 또한 Session 탭 페이지에서 사용 된 서버 버전 볼 수 있습니다 : 아직 가상 컬럼을 공부하지 않은

enter image description here