當從 HANA 資料庫轉換到 MariaDB 資料庫時,有一些語法和類型上的差異。以下是一個簡單的整理,將 HANA 資料庫語法轉換為 MariaDB 資料庫語法的提示:
欄位定義:
- HANA:
INTEGER
,DOUBLE
,SMALLDECIMAL
,DATE
,TIME
,等。
- MariaDB: 使用相應的類型,例如
INT
,DOUBLE
,DECIMAL
,DATE
,TIME
,等。
自動遞增:
HANA: GENERATED BY DEFAULT AS IDENTITY
。
MariaDB: 使用 AUTO_INCREMENT
。
-- HANA
ID INTEGER GENERATED BY DEFAULT AS IDENTITY NOT NULL
-- MariaDB
ID INT AUTO_INCREMENT PRIMARY KEY NOT NULL
日期和時間類型:
HANA: DATE CS_DAYDATE
,TIME CS_SECONDTIME
。
MariaDB: 使用 DATE
,TIME
。
-- HANA
EVENTDATE DATE CS_DAYDATE NOT NULL,
EVENTTIME TIME CS_SECONDTIME NOT NULL
-- MariaDB
EVENTDATE DATE NOT NULL,
EVENTTIME TIME NOT NULL
浮點數和小數:
HANA: CS_SDFLOAT
。
MariaDB: 使用 DECIMAL
或 FLOAT
。
-- HANA
R_SQUARED SMALLDECIMAL CS_SDFLOAT,
MSE SMALLDECIMAL CS_SDFLOAT,
MAE SMALLDECIMAL CS_SDFLOAT
-- MariaDB
R_SQUARED DECIMAL(5,2),
MSE DECIMAL(5,2),
MAE DECIMAL(5,2)
去除不支援的選項:
添加註解:
HANA: 使用 COMMENT ON COLUMN
。
MariaDB: 在 CREATE TABLE
語句中使用 COMMENT
。
-- HANA
COMMENT ON COLUMN `ITRI_WWT`.`COMPONENT`.`UNITID` IS '單元代號';
-- MariaDB
CREATE TABLE `ITRI_WWT`.`COMPONENT` (
-- 其他欄位定義
`UNITID` VARCHAR(255) COMMENT '單元代號',
-- 其他欄位定義
);
請注意,這只是簡單的轉換示例,實際轉換可能需要更多的調整,特別是針對具體的資料庫結構和需求。在進行轉換前,請確保在新的 MariaDB 環境中進行充分的測試。希望這些提示對你有所幫助。如有其他問題,請隨時問我。