mysql 主鍵問題處理

2021-09-01 10:04:33 字數 760 閱讀 7434

mysql的主鍵問題:

mysql的兩種主鍵。primary key 和not null auto_incriment

在建立mysql表時,給乙個字段新增了主鍵primary key

在insert資料時可以不用insert主鍵,mysql會自動新增0,但是在第二次insert時沒有填寫值mysql資料庫還是預設新增0,會導致有重複的主鍵,這是不可以的。所有在定義了primary key時,在insert資料時要給主鍵填寫值。

在建立mysql表時,給乙個字段新增了主鍵not null auto_increment=1;

這也是乙個主鍵。時自增長的以1為開始。這個欄位是可以不用填寫值的,mysql資料庫會自動給填寫值,不會出現primary key的狀況。

alter table tb add primary key(id);

alter table tb change id id int(10) not null auto_increment=1;

》 刪除自增長的主鍵id,先刪除自增長在刪除主鍵

alter table tb change id id int(10);//刪除自增長

alter table tb drop primary key;//刪除主建

》增加主鍵:

alter table tb add primary key (keyname);

》兩個字段聯合作為主鍵:

alter table tb add primary key (keyname1,keyname2);

MySQL對主鍵重複的處理

在向乙個表中插入資料的時候,有一種常見的需求 判斷插入的值是否在表中已經存在,如果是則執行update操作,否則執行insert。在oracle裡可以使用merge into來實現,mysql也對標準sql進行了擴充套件來實現此功能。1.replace into replace類似於insert,區...

Mysql 小主鍵,大問題

今日格言 讓一切回歸原點,回歸最初的為什麼。本篇講解 mysql 的主鍵問題,從為什麼的角度來了解 mysql 主鍵相關的知識,並拓展到主鍵的生成方案問題。再也不怕被問到 mysql 時只知道 crud 了。資料記錄需具有唯一性 第一正規化 資料需要關聯join 資料庫底層索引用於檢索資料所需 以下...

Mysql 主鍵自增長問題小結

在mysql中,主鍵有auto increment來保證其自增長,如果我們自定義函式來表示auto increment的話可以如下 sql create function select autoincrement id returns int 11 begin select max id 1 fro...