MySQL中的insert set 和 insert values用法
insert set 和 insert values用法
insert values
- 優(yōu)點(diǎn):可以批量插入;
- 缺點(diǎn):?jiǎn)螚l執(zhí)行效率低。<適合批量插入>
insert into table(col1,col2,col3) values('val1','val2','val3');
insert set
- 優(yōu)點(diǎn):執(zhí)行效率高;
- 缺點(diǎn):每次只能插入一條數(shù)據(jù)。<適合單條插入>
insert into table set col1='val1',col2='val2',col3='val3';
mysql 語(yǔ)法 insert into set
MySQL 對(duì)于不同種類的日期和時(shí)間有很多的數(shù)據(jù)類型,比如YEAR和TIME。如果只需要記錄年份,則使用YEAR類型即可;如果只記錄時(shí)間,只需使用TIME類型。如果同時(shí)需要記錄日期和時(shí)間,則可以使用TIMESTAMP或者DATETIME類型。
由于TIMESTAMP 列的取值范圍小于DATETIME的取值范圍,因此存儲(chǔ)范圍較大的日期最好使用DATETIME.
- TIMESTAMP 也有一個(gè)DATETIME 不具備的屬性。
- 默認(rèn)的情況下,當(dāng)插入一條記錄但并沒有指定TIMESTAMP 這個(gè)列值時(shí), MySQL會(huì)把TIMESTAMP列設(shè)為當(dāng)前的時(shí)間。
- 因此當(dāng)需要插入記錄同時(shí)插入當(dāng)前時(shí)間時(shí),使用TIMESTAMP是方便的,另外TIMESTAMP在空間上比DATETIME 更有效。
《當(dāng)需要插入記錄同時(shí)插入當(dāng)前時(shí)間時(shí),使用TIMESTAMP是方便的》
理解了一下這句話的含義,百度查了一下mysql支持這樣的語(yǔ)法, insert into set
mysql> insert into tmp14 values(1); ERROR 1136 (21S01): Column count doesn't match value count at row 1 mysql> insert into tmp14 set id=1; Query OK, 1 row affected (0.00 sec) ? mysql> select * from tmp14; +------+---------------------+ | id ? | td ? ? ? ? ? ? ? ? ?| +------+---------------------+ | ? ?1 | 2022-03-31 16:28:07 | +------+---------------------+ 1 row in set (0.00 sec)
在mysql5.7中無(wú)法設(shè)置為兩個(gè)列設(shè)置為timestamp類型。
mysql> create table tmp14(id int,td timestamp,td2 timestamp); ERROR 1067 (42000): Invalid default value for 'td2' ? mysql> alter table tmp14 add column td2 timestamp; ERROR 1067 (42000): Invalid default value for 'td2'
insert into set語(yǔ)法在postgresql中是不支持的。
[txadmin@node2 ~]$ psql ? txdb_default=# create table tmp14(id int,td timestamp); CREATE TABLE txdb_default=# ?insert into tmp14 set id=1; ERROR: ?syntax error at or near "set" 位置: ?insert into tmp14 set id=1; ? ? ? ? ? ? ? ? ? ? ? ? ?^
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
mysql中錯(cuò)誤:1093-You can’t specify target table for update in F
最近在工作中遇到了一個(gè)mysql錯(cuò)誤提示1093:You can’t specify target table for update in FROM clause,后來(lái)通過(guò)查找相關(guān)的資料解決了這個(gè)問(wèn)題,現(xiàn)在將解決的方法分享給大家,有需要的朋友們可以參考借鑒,下面來(lái)一起看看吧。2017-01-01mysql 5.7.20\5.7.21 免安裝版安裝配置教程
這篇文章主要為大家詳細(xì)介紹了mysql5.7.20和mysql5.7.21免安裝版安裝配置教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02淺談MyISAM 和 InnoDB 的區(qū)別與優(yōu)化
InnoDB和MyISAM是在使用MySQL最常用的兩個(gè)表類型,各有優(yōu)缺點(diǎn),視具體應(yīng)用而定。下面我們就來(lái)具體探討下吧2015-07-07連接mysql報(bào)錯(cuò)——沒有設(shè)置“usessl=false”的問(wèn)題
這篇文章主要介紹了連接mysql報(bào)錯(cuò)——沒有設(shè)置“usessl=false”的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08Ubuntu?18.04.4安裝mysql的過(guò)程詳解?親測(cè)可用
這篇文章主要介紹了Ubuntu?18.04.4安裝mysql-親測(cè)可用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-12-12MySQL5.6 Replication主從復(fù)制(讀寫分離) 配置完整版
這篇文章主要介紹了MySQL5.6 Replication主從復(fù)制(讀寫分離) 配置完整版,需要的朋友可以參考下2016-04-04MySQL?SQL預(yù)處理(Prepared)的語(yǔ)法實(shí)例與注意事項(xiàng)
所謂預(yù)編譯語(yǔ)句就是將此類SQL語(yǔ)句中的值用占位符替代,可以視為將 SQL語(yǔ)句模板化或者說(shuō)參數(shù)化,一般稱這類語(yǔ)句叫Prepared Statements,下面這篇文章主要給大家介紹了關(guān)于MySQL?SQL預(yù)處理(Prepared)的相關(guān)資料,需要的朋友可以參考下2022-01-01