Node / MySQL:只能插入第一次
我有一个节点(目前v6)和MySQL的问题。
Node Code
正在运行服务器端,并没有得到任何错误。 代码第一次工作; 但是,随后的时间, name
和description
值作为空stringinput, quantity
列为0
(默认值)。
created
, pid
和id
(自动递增)列的值插入正确。 我不知道为什么这是第一次正常工作,而不是后来工作。
编辑:当我从addMany
输出的查询,并直接input到MySQL,它每次都工作。
每次我如何正确地工作? 任何帮助真诚感谢!
表格模式:
CREATE TABLE `some_table` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `pid` int(11) unsigned NOT NULL, `qty` int(11) unsigned NOT NULL DEFAULT '0', `name` varchar(128) NOT NULL, `description` text NOT NULL, `created` int(10) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `k_pid` (`pid`), CONSTRAINT `fk_some_table_p_pid` FOREIGN KEY (`pid`) REFERENCES `p` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB AUTO_INCREMENT=1337 DEFAULT CHARSET=utf8;
节点代码:
function addMany(items, callback) { const itemsArray = Array.isArray(items) ? items : [items]; const params = itemsArray.map((item) => { return [ item.pid, item.quantity, item.name, item.description, Math.floor(new Date() / 1000), ]; }); const queryStr = 'INSERT INTO some_table (`pid`, `quantity`, `name`, `description`, `created`) VALUES ?;'; db.executeQuery(queryStr, [params], callback); }
第一次运行:
const items1 = [ { name: 'name__1', description: 'some desc 1', quantity: 1, pid: '17771' }, { name: 'name__2', description: 'some desc 2', quantity: 1, pid: '17771' } ]; addMany(items1, () => {});
addMany
创build并运行此查询:
INSERT INTO some_table (`pid`, `quantity`, `name`, `description`, `created`) VALUES ('17771', 1, 'name__1', 'some desc 1', 1502913412), ('17771', 1, 'name__2', 'some desc 2', 1502913412);
MYSQL显示这个数据:
id pid quantity name description created 6423 17771 1 name__1 some desc 1 1502913412 6424 17771 1 name__2 some desc 2 1502913412
第二次运行:
const items2 = [ { name: 'name__3', description: 'some desc 3', quantity: 1, pid: '17771' }, { name: 'name__4', description: 'some desc 4', quantity: 1, pid: '17771' } ]; addMany(items2, () => {});
addMany
创build并运行此查询:
INSERT INTO some_table (`pid`, `quantity`, `name`, `description`, `created`) VALUES ('17771', 1, 'name__3', 'some desc 3', 1502913412), ('17771', 1, 'name__4', 'some desc 4', 1502913412);
MYSQL显示这个数据:
id pid quantity name description created 6423 17771 1 name__1 some desc 1 1502913412 6424 17771 1 name__2 some desc 2 1502913412 6425 17771 0 1502913412 6426 17771 0 1502913412