执行更改自动迁移策略时,通过尝试使用IN()而不使用IN()中的ID进行选择来使sails提升失败

时间:2014-08-17 23:36:23

标签: sails.js waterline

当举起风帆时,我在尝试执行更改自动迁移策略时遇到致命错误。错误消息没有帮助,我追查到发现升降机正在执行的事情导致错误。这些是最后执行的查询(查看上一个查询)。

DESCRIBE `class`
SHOW INDEX FROM `class`;
SELECT `class`.`name`, `class`.`schoolFk`, `class`.`id`, `class`.`createdAt`, `class`.`updatedAt` FROM `class`
DROP TABLE `class`
DESCRIBE `class`
CREATE TABLE `class` (`name` VARCHAR(50) , `schoolFk` INT , `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `createdAt` DATETIME , `updatedAt` DATETIME )
DESCRIBE `class`
SHOW INDEX FROM `class`;
INSERT INTO `class` (`class`.`name`, `class`.`schoolFk`, `class`.`id`, `class`.`createdAt`, `class`.
`updatedAt`) VALUES ('9 N', 1, 7, '2014-08-16 22:35:07', '2014-08-16 22:35:07');
INSERT INTO `class` (`class`.`name`, `class`.`schoolFk`, `class`.`id`, `class`.`createdAt`, `class`.
`updatedAt`) VALUES ('9M', 1, 9, '2014-08-16 23:07:53', '2014-08-16 23:07:53');
INSERT INTO `class` (`class`.`name`, `class`.`schoolFk`, `class`.`id`, `class`.`createdAt`, `class`.
`updatedAt`) VALUES ('9 C', 1, 5, '2014-08-16 22:07:01', '2014-08-16 22:07:01');
INSERT INTO `class` (`class`.`name`, `class`.`schoolFk`, `class`.`id`, `class`.`createdAt`, `class`.
`updatedAt`) VALUES ('9 P', 1, 8, '2014-08-16 22:40:29', '2014-08-16 22:40:29');

SELECT * FROM `class` WHERE `id` IN (7,9,5,8);

DESCRIBE `exam`
SHOW INDEX FROM `exam`;
SELECT `exam`.`academicYear`, `exam`.`schoolFk`, `exam`.`classFk`, `exam`.`term`, `exam`.`examNo`, `exam`.`lesson`, `exam`.`examTopics`, `exam`.`userFk`, `exam`.`id`, `exam`.`createdAt`, `exam`.`updatedAt` FROM `exam`
DROP TABLE `exam`
DESCRIBE `exam`
CREATE TABLE `exam` (`academicYear` VARCHAR(20) , `schoolFk` INT , `classFk` INT , `term` VARCHAR(50) , `examNo` VARCHAR(50) , `lesson` VARCHAR(255) , `examTopics` LONGTEXT , `userFk` INT , `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `createdAt` DATETIME , `updatedAt` DATETIME )
DESCRIBE `exam`
SHOW INDEX FROM `exam`;
SELECT * FROM `exam` WHERE `id` IN ();

在上一个查询中,它尝试使用IN()进行选择而不提供任何值(该表为空,显然它无法找到任何要放入其中的ID,就像它在上面的类表查询中所做的那样)

我的问题是,如果表格为空(上面没有针对考试表的插入),为什么会这样做?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我通过在exam表中放置一些数据解决了这个问题,但是当表空为时,却无法找出为什么sails尝试在没有任何参数的情况下进行IN()。