首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 與 MSSQL 插入、更新、刪除差異詳解(八)

     編輯:MySQL 綜合教學

INSERT 差異重點

1. 多行查詢結果插入

INSERT INTO table1(col_list) SELECT col_list FROM table2 WHERE condition;

兩資料庫皆支援。

2. 重複鍵處理:MySQL 三種方案

  • INSERT IGNORE:忽略重複錯誤,繼續執行。
  • REPLACE INTO:刪除舊行再插入新行。
  • ON DUPLICATE KEY UPDATE:衝突時更新指定欄位。

MSSQL 需在建表時指定 WITH (IGNORE_DUP_KEY = ON) 於主鍵/唯一索引上。

3. 自增欄位插入自由度

  • MSSQL:需 SET IDENTITY_INSERT table ON 才能指定自增值,否則不可指定。
  • MySQL:可指定 NULL、指定具體值、或省略欄位,完全自由,無需額外設定。

4. 唯一索引與 NULL 值

  • MySQL:唯一索引允許多個 NULL。
  • MSSQL:唯一索引視 NULL 為重複值,僅允許一個 NULL。

UPDATE 差異

基本語法一致,MySQL 支援 LIMIT 限制更新筆數:UPDATE t SET c=1 WHERE ... LIMIT 10。

DELETE 與 TRUNCATE

  • DELETE FROM table WHERE ...:可帶條件,觸發 Trigger,不重置自增計數器。
  • TRUNCATE TABLE table:不可帶條件,不觸發 Trigger,重置自增計數器從 1 開始,速度遠快於 DELETE。兩資料庫行為相同。

測試 30 筆資料:TRUNCATE 耗時極短,DELETE 較慢。

驗證自增重置

SHOW TABLE STATUS LIKE 'person'; -- 查看 Auto_increment 值

總結

MySQL 在插入語法彈性、重複鍵處理選項、自增欄位操作上明顯優於 MSSQL,初學者從 MSSQL 轉入時需適應「寬鬆」的規則,善用 INSERT IGNORE 等特性簡化邏輯。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved