mysql - 如何在 MYSQL 版本(6.0.11-alpha-community)中创建生成列
问题描述
我在 MYSQL 版本(6.0.11-alpha-community)中创建了一个带有生成列的表
如下所示,我修改了 Generated Column 的结构
一 :
CREATE TABLE tbl_MAE_Customers(
ID INT AUTO_INCREMENT PRIMARY KEY,
CustomerName VARCHAR(30),
PhoneNmbr VARCHAR(15),
Email VARCHAR(30),
TCSShares INT,
InfosysShares INT,
TechmShares INT,
TotalShares INT GENERATED ALWAYS AS (TCSShares+InfosysShares+TechmShares),
Remarks VARCHAR(200)
)
二 :
CREATE TABLE tbl_MAE_Customers(
ID INT AUTO_INCREMENT PRIMARY KEY,
CustomerName VARCHAR(30),
PhoneNmbr VARCHAR(15),
Email VARCHAR(30),
TCSShares INT,
InfosysShares INT,
TechmShares INT,
TotalShares INT AS (TCSShares+InfosysShares+TechmShares),
Remarks VARCHAR(200)
)
第三 :
CREATE TABLE tbl_MAE_Customers(
ID INT AUTO_INCREMENT PRIMARY KEY,
CustomerName VARCHAR(30),
PhoneNmbr VARCHAR(15),
Email varchar(30),
TCSShares int,
InfosysShares int,
TechmShares int,
TotalShares as (TCSShares+InfosysShares+TechmShares),
Remarks varchar(200)
)
我尝试以多种方式修改生成列的结构,当我执行查询时,我收到以下错误:
查询:CREATE TABLE tbl_MAE_Customers(ID INT AUTO_INCREMENT PRIMARY KEY, CustomerName VARCHAR(30), PhoneNmbr VARCHAR(15), Email varchar...
错误代码:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 2 行的“始终生成为 (TCSShares+InfosysShares+TechmShares), Remarks varchar(200))”附近使用正确的语法
执行时间:0 秒传输时间:0 秒总时间:0.001 秒
我是 MYSQL 的新手。
建议我如何在没有任何错误的情况下实现这一目标。
解决方案
从 2009 年 5 月起,您使用的是 MySQL 6.0 的 alpha 版本。6.0 分支从未脱离 alpha 状态。由于代码性能问题,它被取消了。老实说,您甚至可以找到它的副本,这真是令人惊讶!
MySQL 的进一步开发仍在继续,但版本变为 5.6。我知道这很令人困惑,但 5.6 比 6.0 更先进。但即使是 5.6 也太老了,以至于它已经过了生命的尽头。
GENERATED
表达式列的语法是在 MySQL 5.7 中引入的。MySQL 6.0 和 5.6 不支持生成列。您必须使用当前版本才能获得对该功能的支持。
推荐阅读
- javascript - Firestore 函数导入错误:“尝试导入错误:'arrayUnion' 未从 'firebase/firestore' 导出。”
- apache-kafka - 使用 TCP 套接字和 Deno 向 Kafka 代理发送消息
- sql - 插入到 postgresql jsonb 字段中
- r - 如何以简洁的方式将多个回归的结果存储在单个数据框中
- reactjs - 如何在 Next.js 中使用 NODE_ENV=development 环境进行构建?
- tabs - 如何在 Vue3 中使用 vue-router-tab?
- machine-learning - 训练模型后的预测数据与实际数据不相似
- spring - Spring Boot 2.5.x:所需的请求部分“文件”不存在
- excel - 保持基于单元格的重复行
- heroku - 为什么我的 Heroku 应用程序无法连接?