私はMySQLには新しく、Workbench 6.3.9 Community Editionでバージョン5.7.19-log(少なくともコマンドラインクライアントから取得したもの)を実行しています。ワークベンチの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 Workbenchのgenerated
フラグをオンにすると
私は仮想列を勉強していない、まだけど...それは空を持ってしても意味がありません定義? –
Workbenchが何をしようとしているかわかりません。 Mysqlの自動インクリメントは、次のようなものでなければなりません: 'INT AUTO_INCREMENT' –
' INTは常に(式)として生成されます。生成された列についてはこちらを参照してください。https://dev.mysql.com/doc/refman/5.7/en/create-table-generated-columns.html – poncha