1. 程式人生 > >mysql插入前判斷資料是否存在

mysql插入前判斷資料是否存在

業務場景:需要記入訪客的訪問情況,但不能重複記入

可以插入前進行判斷要插入的資料是否存在業務程式碼如下 :

INSERT INTO t_topic_vistor(user_id,topic_code) SELECT '218', 
'XQ33019920170811142528217' FROM DUAL WHERE NOT EXISTS(SELECT * 
FROM t_topic_vistor WHERE user_id = 218 and 
topic_code='XQ33019920170811142528217')

語法如下:

INSERT INTO table(field1, field2, fieldn) SELECT
'field1', 'field2', 'fieldn' FROM DUAL WHERE NOT EXISTS(SELECT field FROM table WHERE field = ?)

相關推薦

mysql插入判斷資料是否存在

業務場景:需要記入訪客的訪問情況,但不能重複記入 可以插入前進行判斷要插入的資料是否存在業務程式碼如下 : INSERT INTO t_topic_vistor(user_id,topic_code

mysql 插入更新判斷 ON DUPLICATE KEY UPDATE

平時我們在設計資料庫表的時候總會設計 unique 或者 給表加上 primary key 的限制條件.此時 插入資料的時候 ,經常會有這樣的情況:我們想向資料庫插入一條記錄: 若資料表中存在以相同主鍵的記錄,我們就更新該條記錄。 否則就插入一條新的記錄。 如果在INSERT語句末尾指定

MySQL插入大批量資料是報錯“The total number of locks exceeds the lock table size”的解決辦法

事情的原因是:我執行了一個load into語句的SQL將一個很大的檔案匯入到我的MySQL資料庫中,執行了一段時間後報錯“The total number of locks exceeds the lock table size”。 首先使用命令 show variables like '%storage

Java+MySQL:插入一條資料並刪除上一條

大致過程:1.向資料庫中插入一條資料,並獲取新增資料的id-currentId2.找到id為 (currentId-1) 的資料,如果存在則將它刪除,如果不存在繼續將id減一,知道能夠刪除一條資料package jdbc; import java.sql.Connectio

JAVA向Mysql插入億級別資料---測評

利用JAVA向Mysql插入一億數量級資料—效率測評       前景:這幾天研究mysql優化中查詢效率時,發現測試的資料太少(10萬級別),利用 EXPLAIN 比較不同的 SQL 語句,不能夠得到比較有效的測評資料,大多模稜兩可,不敢通過這些資料下

SQL觸發器--插入判斷資料是否已存在

判斷插入的人員身份證號是否已存在,如存在則取消插入,並給出提示。 --身份證號唯一,但並非主鍵,主鍵是ZA0100 create TRIGGER flx_isexist ON FD01 for INSERT AS begin  declare @id varchar(20)  declare @key va

深入淺出Hibernate之向Mysql插入BLOB,CLOB資料

轉自:http://blog.chinaunix.net/uid-1718634-id-2821233.html mysql version 5.0 database name:sample 資料表DDL:  create table `sample`.`

mysql 插入多條資料如何使用INSERT插入多條記錄

看到這個標題也許大家會問,這有什麼好說的,呼叫多次INSERT語句不就可以插入多條記錄了嗎!但使用這種方法要增加伺服器的負荷,因為,執行每一次 SQL伺服器都要同樣對SQL進行分析、優化等操作。幸好M

mybatis mysql 插入物件返回資料主鍵id

RuleTypeMapper.xml 檔案原始碼 <insert id="insertRuleType" useGeneratedKeys="true" keyProperty="id" parameterType="com.haier.gsp.core.mo

Mybatis 實現Mysql批量插入資料判斷資料是否存在

常見插入資料的SQL insert into 插入資料庫時會檢查主鍵是否存在,存在會報錯 replace into 替換資料庫記錄,需要表中有主鍵或者unique索引,如果資料庫已存在的資料,會先刪除該資料然後新增。不存在的資料效果和insert into

mysql插入 ?

mysql在indodb_的存儲引擎中,主鍵是唯一的標識符。通常應用程序中行記錄的插入順序是按照主鍵遞增的順序進行插入的mysql> create table t ( a int auto_increment, b varchar(30), primary key(a) ); mysql> i

mysql 插入時帶判斷條件

exist mysq eight 多條 weight union sql IV 查找 INSERT INTO table (f1 ,f2 ,f3) SELECT 1 ,‘a‘,3 FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM

MySQL INSERT插入條件判斷:如果不存在則插入

sts 想要 where sele rom sel 臨時表 dual insert語句 MySQL INSERT插入條件判斷:如果不存在則插入 我們經常需要進行sql的批量插入,要求:該條記錄不存在則插入,存在則不插入。如果使用一條INSERT語句實現呢? 對於普通的 IN

mysql 插入json資料

MySQL 5.7 Reference Manual  /   Data Types  /  The JSON Data Type 11.6 The JS

Scrapy框架 資料同時mysql 和 本地磁碟 及優先順序設定

在管道檔案內編寫 pipelines管道檔案 另外寫一個類來處理儲存 # 儲存方式1 class QiubaiproPipeline(object): # 對提交的item物件,mysql資料庫儲存 # 爬蟲每次提交item,該方法被執行一次

mysql 儲存過程 有資料修改 沒資料插入

BEGIN DECLARE sid INT(10) DEFAULT 0; DECLARE money INT(10) DEFAULT 0; DECLARE row_count INT; DECLARE done INT DEFAULT FALSE;#預設遊標讀出有記錄 DECLA

mysql插入資料 自動更新時間使用nactive for mysql

createTime:插入資料時,自動獲取當前時間, 預設選項 要選擇那個空白,然後把 CURRENT_TIMESTAMP 複製進去,下面根據當前時間戳更新,打上勾,就好了   createTime 的型別一定要是 timestamp,而不是datetime

解決mysql插入資料時出現Incorrect string value: '\xF0\x9F...' for column 'name' at row 1的異常

這個問題,原因是UTF-8編碼有可能是兩個、三個、四個位元組。Emoji表情或者某些特殊字元是4個位元組,而MySQL的utf8編碼最多3個位元組,所以資料插不進去。 我的解決方案是這樣的 1.在mysql的安裝目錄下找到my.ini,作如下修改:   [mysqld] character

MySQL 插入資料異常 Err 1055 - Expression 1的解決

                        &nbs

吳裕雄 10-MySQL插入資料

語法以下為向MySQL資料表插入資料通用的 INSERT INTO SQL語法:INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN );如果資料是字元型,必須使用單引號或者雙引號,如:"va