我正在尝试检索主键' id'我运行查询时的表格:
`INSERT INTO eval (evalTypeId, parentEvalId, authoredContentId) VALUES ( ?, ?, ?)
ON DUPLICATE KEY UPDATE evalTypeId = VALUES(evalTypeId), parentEvalId = VALUES(parentEvalId), authoredContentId = VALUES(authoredContentId),[evalObject.evalTypeId, evalObject.parentEvalId, evalObject.authoredContentId]`
我的表格架构:
`CREATE TABLE IF NOT EXISTS eval (
id INT NOT NULL AUTO_INCREMENT,
evalTypeId INT NOT NULL,
parentEvalId INT NULL,
authoredContentId VARCHAR(100) NULL,
PRIMARY KEY (id) ,
CONSTRAINT fk_eval_evalTypeId
FOREIGN KEY (evalTypeId)
REFERENCES .evalType (id)
ON DELETE CASCADE
ON UPDATE NO ACTION,
CONSTRAINT fk_eval_parentEvalId
FOREIGN KEY (parentEvalId)
REFERENCES eval (id)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
CREATE INDEX evalTypeid_idx ON eval (evalTypeId ASC) ;
CREATE INDEX parentEvalId_idx ON eval (parentEvalId ASC) ;
CREATE UNIQUE INDEX authoredContentId_UNIQUE ON eval (authoredContentId ASC) ;`
我的用例:我已经在表中插入了id = 2的记录。我想更新记录并获取更新的行ID。但是,在这种情况下,不需要任何更新。我仍然想要获取受影响的行ID。
`rows :: { fieldCount: 0,
affectedRows: 1,
insertId: 0,
serverStatus: 2,
warningCount: 0,
message: '',
protocol41: true,
changedRows: 0 }`
如图所示,我的insertId = 0,但我希望它是2.有没有办法弄清楚在更新过程中哪个ID受到影响,即使没有任何必须更新的列。
P.S - 我需要解决这个问题,因为我必须递归地运行我的更新。