正确语法从MSSQL到MySQL



大家好!

MySQL中正确的语法查询是什么?我得到错误在mysql执行期间(你有一个错误在你的SQL语法;检查与您的MySQL服务器版本对应的手册,以便在'EmpCode附近使用正确的语法,如CONCAT('EMP', right (CONCAT(' 0000', CONVERT(EmpId, ' at line 3)

CREATE TABLE tbEmployee
(
EmpId INT NOT NULL, PRIMARY KEY,
EmpCode AS CONCAT('EMP' , RIGHT(Concat('0000', CONVERT(EmpId, CHAR(5))),5)) PERSISTED,
EmployeeName VARCHAR(50),
Age        INT,
Gender VARCHAR(10)
)

MySQL生成的列要么是VIRTUAL(默认),要么是STORED,后者对应于SQL Server的持久化。试试这个版本:

CREATE TABLE tbEmployee (
EmpId INT NOT NULL PRIMARY KEY,
EmpCode VARCHAR(50) AS (CONCAT('EMP', LPAD(EmpId, 5, '0'))) STORED,
EmployeeName VARCHAR(50),
Age INT,
Gender VARCHAR(10)
);

还请注意,MySQL在将数字列转换为文本方面有点宽松。此外,我们可以使用MySQL的LPAD函数左pad员工ID与0,宽度为5位数字。

最新更新