mysql基礎(二)插入與自增測試

2021-10-08 23:26:51 字數 2488 閱讀 1473

使用的是mysql8,首先以預設innodb引擎建立一張表:

create

table zzcs(

id int

primary

keyauto_increment

, name varchar(5

))

再以myisam引擎建立一張表:

create

table myisambiao(

id int

primary

keyauto_increment

, *** char(5

)not

null

)engine

=myisam

首先分別檢視兩張表使用的引擎:

show

table

status

from book where name=

'zzcs'

show

table

status

from book where name=

'myisambiao'

得出結果分別為:innodb、myisam。

再分別向兩張表插入資料:

insert

into zzcs(name)

values

('a'),

('b'),

('c'),

('d'

)

語句格式:insert into 表名(欄位名) values(字段值),(字段值),(字段值),(字段值)。等於一次性給乙個字段插入了4行資料,因為主鍵是自增長,所以省略。

insert

into myisambiao values

(null

,'a'),

(null

,'b'),

(null

,'c'),

(null

,'d'

)

語句格式:insert into 表名 values(null,字段值),(null,字段值),(null,字段值),(null,字段值)。此處也是一次性插入了4行資料,因為省略了欄位名,系統預設為給所有字段插入資料,所以values()裡面要按順序填入所有欄位的值,因為id設定為自增,所以填入null。

查詢兩張表:

select

*from zzcs

select

*from myisambiao

結果分別如下圖:

兩張表的id都是1-4,現在我們將兩張表的第3、4行刪除:

delete

from zzcs where id >

2delete

from myisambiao where id>

2

現在兩張表的id都是1-2了,重啟一下mysql,再來測試插入行看結果有什麼不同。

還是執行剛才的兩行插入語句:

insert

into zzcs(name)

values

('a'),

('b'),

('c'),

('d'

)insert

into myisambiao values

(null

,'a'),

(null

,'b'),

(null

,'c'),

(null

,'d'

)

再分別查詢兩張表:

select

*from zzcs

select

*from myisambiao

結果分別如下:

兩張表的結果都一樣,都是在最後的自增id(4)基礎上進行了自增,說明不管是使用innodb還是myisam引擎的表在刪除某些行列後,都會在之前最後自增到的數字上再進行自增。只有mysql5使用innodb的情況下,刪除某些行後才會緊接著保留到的id數字進行自增。

多說一句,自增對不管是否主建的整數型字段生效,是唯一的,所以要加上唯一約束(主鍵本來就是非空且唯一的自然不用加)

Mysql 記自增屬性 如何插入

今天在寫jsp的時候 遇上了乙個問題 如果說 我在mysql中設定了乙個新增變數 就比如說 id 那麼在使用insert語句的時候 應該怎麼插入呢?先說正確的做法 在插入時指定欄位名 pstmt conn.preparestatement insert into usertable username...

Mysql 主鍵自增插入資料問題

mysql資料庫表中有自增主鍵id,當用sql插入語句中插入語句帶有id列值記錄的時候 如果指定了該列的值,則新插入的值不能和已有的值重複,而且必須大於其中最大的乙個值 也可以不指定該列的值,只將其他列的值插入,讓id還是按照mysql自增自己填 具體 1.建立資料庫 create table if...

mysql插入資料,獲取最新插入的ID(自增列)

在mysql中,使用auto increment型別的id欄位作為表的主鍵。通常的做法,是通過 select max id from tablename 的做法,但是顯然這種做法需要考慮併發的情況,需要在事務中對主表以 x鎖 待獲得max id 的值以後,再解鎖。這種做法需要的步驟比較多,有些麻煩,...