2017-03-06 92 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