2017-03-06 98 views
1

我想连接两个整数作为第三个字段中的默认值。我在SQL Server中创建表工作正常:将SQL Server代码转换为MySQL

CREATE TABLE MEI_Tbl 
(
MEI_ID int PRIMARY KEY IDENTITY (1,1), 
SRC tinyint NOT NULL DEFAULT '2', 
HEI_ID AS (Cast (SRC as varchar)+ Cast (MEI_ID as varchar)) 
); 

但是当我尝试在MySQL中创建它,我无法找到两个整数的串联等效(5号线HEI_ID ...)。 ** 我知道将IDENTITY(1,1)更改为AUTO_INCREMENT for MySQL。 ** 我也尝试了几种concat方法,但无济于事。

MySQL似乎更高兴,如果我为HEI_ID定义数据类型,并且我已经这样做了varchar和int,但又没有成功。

我花了太多时间阅读工具包,将SQL Server转换为MySQL。我只是想在MySQL中创建表。

任何输入,将不胜感激。

回答

1

MySQL不支持计算列。相反,您可以使用视图:

CREATE TABLE MEI_Tbl (
    MEI_ID int PRIMARY KEY AUTO_INCREMENT, 
    SRC tinyint NOT NULL DEFAULT 2 
); 

CREATE VIEW v_MEI_Tbl as 
    SELECT MEI_ID, SRC, 
      CONCAT(src, mei_d) as HEI_ID 
    FROM MEI_Tbl 
); 

然后从视图进行查询。

+0

谢谢,先生!你的第一句话(“MySQL不支持计算列”)不是我读过的。我在研究中也没有遇到它。您的解决方法建议也是有道理的。 – Amateur