閱讀960 返回首頁    go windows


REPLACE__數據操作語言_SQL語法參考_雲數據庫 OceanBase-阿裏雲

REPLACE的運行與INSERT相似,隻有一點除外,如果表中的一個舊記錄與一個用於PRIMARY KEY或一個UNIQUE索引的新記錄具有相同的值,則在新記錄被插入之前,舊記錄將被刪除。

為了能夠使用REPLACE,必須同時擁有表的INSERT和DELETE權限。

格式

REPLACE [INTO] tblname
    [(colname,...)] 
    {VALUES|VALUE} ({expr | DEFAULT},...);
  • [(colname,...)]用於指定插入數據的列。

  • 同時替換多列時,用“,”隔開。

關於REPLACE語句執行,affect row的值計算:

  • 如果是當新行插入的話,affected_row=1;

  • 如果replace前後新值和舊值不一致的話,affectd_row=2,(這裏假定產生衝突的行為1行,如果為多行的話,那麼affectd_row = 衝突行數+1)

  • 如果replace前後新值和舊值一致的話,分兩種情況:

    • 如果產生衝突的是表上最後一個唯一索引&&沒有外鍵約束&&沒有ON DELETE TRIGGER,affected_row=1;
    • 其他情況,affectd_row = 2。

最後更新:2016-11-24 11:23:47

  上一篇:go UPDATE__數據操作語言_SQL語法參考_雲數據庫 OceanBase-阿裏雲
  下一篇:go DELETE__數據操作語言_SQL語法參考_雲數據庫 OceanBase-阿裏雲