700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 基于node.js的express使用mysql语句在插入数据时防重插入

基于node.js的express使用mysql语句在插入数据时防重插入

时间:2020-09-02 03:10:24

相关推荐

基于node.js的express使用mysql语句在插入数据时防重插入

基于node.js的express使用mysql语句在插入数据时防重插入

1.在使用MySQL进行插入数据的时候,使用以下语句能够避免重复数据进行插入,即过滤相同的数据

例如:

某数据库某表的字段如下:

CREATE TABLE IF NOT EXISTS BooksInfo(BooksInfoId VARCHAR(20),/*primaryKey,需为图书id*/title VARCHAR(50) NOT NULL,/*图书姓名*/num INT UNSIGNED NOT NULL,/*图书总数目*/pos VARCHAR(50) NOT NULL,/*图书位置*/PRIMARY KEY (BooksInfoId))

那么,进行防重插入的SQL语句如下:

INSERT INTO BooksInfo(BooksInfoId,title,num,pos) SELECT 'a115','数据结构与算法',500,'c区'FROM DUALWHERE NOT EXISTS(SELECT BooksInfoId,title,num,posFROM BooksInfoWHERE BooksInfoId='a115' AND title='数据结构与算法' AND num=500 AND pos='c区');

2.在使用基于node.js的express框架进行设计时,进行如下定义即可保证防重插入

在base.js中:

var mysql = require('mysql')class Base {constructor() {this.CONNECT;}CreateConnect() {this.CONNECT = mysql.createConnection({host: 'localhost',port: '3306',user: 'root',password: '0610',database: 'libraryManagementSystem'})}}module.exports = {Base }

在bookData.js中:

const Base = require('./Base')const addData ="INSERT INTO BooksInfo(BooksInfoId,title,num,pos) SELECT ?,?,?,? FROM DUAL WHERE NOT EXISTS(SELECT BooksInfoId,title,num,pos FROM BooksInfo WHERE BooksInfoId=? AND title=? AND num=? AND pos=?);"class Books extends Base.Base {constructor() {super()}//增添数据addData(message, callback) {this.CreateConnect()let CONNECT = this.CONNECTCONNECT.connect()CONNECT.query(addData,[message.BooksInfoId, message.title, message.num, message.pos, message.BooksInfoId, message.title, message.num, message.pos],(err, result) => {if (err) {console.log('[ADD ERROR]:', err.message);callback(-1);CONNECT.end();return;}callback(0);CONNECT.end();})}}module.exports = {Books }

TIPS:在const addData中,字符串类型的变量‘?'无需用引号进行包括,否则会报错。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。