我有一个与Express.js后端结合的MariaDB数据库,因此使用MariaDB提供的Node.js Connector。我使用如下所示的表初始化了一个数据库:
CREATE TABLE IF NOT EXISTS `Threads` (
`id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
`title` TINYTEXT NOT NULL,
`post` TEXT NOT NULL,
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
`updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL,
PRIMARY KEY (`id`)
);
使用我的后端中的Node. js-Connector,我想向这个表中插入一些数据,并使用 "created_at" 和 "updated_at" 的默认值。
我在想这样的事:
const insertThreadQuery = 'INSERT INTO Threads VALUES (?, ?, ?, ?, ?)';
con = await pool.getConnection();
const result = await con.query(insertThreadQuery, [null, "title", "post", null, null]);
这显然会抛出一个错误,告诉我不能为这些值((conn=4, no: 1048, SQLState: 23000) Column 'updated_at' cannot be null sql: INSERT INTO Threads VALUES (?, ?, ?, ?, ?) - parameters:[null,'title','post',null,null])
插入null
我的问题是:如何像前面显示的那样插入一个条目,但不插入"null",而是插入其他内容,以便我的列 * created_at * 和 * updated_at * 使用默认值?
1条答案
按热度按时间hgc7kmma1#
如果要使用DEFAULT值,则传递DEFAULT而不是NULL。