【问题标题】:Model Generation using sequelize with MySQL dialect使用 sequelize 和 MySQL 方言生成模型
【发布时间】:2020-04-28 18:07:29
【问题描述】:

关于使用 sequelize 生成模型的查询:

  1. 如何使用 MySQL 在 sequelize 中提供自增自定义值。
  2. 如何将当前时间戳设置为任何字段作为数据类型。 (查询中显示的当前实现对我不起作用!)
  3. 如何设置 ROW_FORMAT = COMPACT?
  4. 如何在唯一键或外键中自定义约束名称?

需要进行哪些更改?以及在哪个文件中模型或迁移。

我创造了什么:

CREATE TABLE `tbltests` (
  `testId` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(250) DEFAULT NULL,
  `nameId` int(4) unsigned DEFAULT 0,
  `nameunique` varchar(100) NOT NULL,
  `status` tinyint(1) NOT NULL DEFAULT 0,
  `timet` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  `createdAt` datetime NOT NULL,
  `updatedAt` datetime NOT NULL,
  PRIMARY KEY (`testId`),
  UNIQUE KEY `nameunique` (`nameunique`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4

我想要的输出:

 CREATE TABLE `tbltests` (
      `testId` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(250) DEFAULT NULL,
      `nameId` int(4) unsigned DEFAULT 0,
      `nameunique` varchar(100) NOT NULL,
      `status` tinyint(1) NOT NULL DEFAULT 0,
      `timet` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
      `createdAt` datetime NOT NULL,
      `updatedAt` datetime NOT NULL,
      PRIMARY KEY (`testId`),
      UNIQUE KEY `nameunique` (`nameunique`)
    ) ENGINE=InnoDB AUTO_INCREMENT=52 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT

【问题讨论】:

  • tbltests PK 中的错字。
  • 这个不清楚。你有什么问题?如果你想要后者,为什么不使用它?你的实际代码是什么? minimal reproducible examplePS 两个create 中都没有notificationId 列,怎么可能PK? PS 每个帖子询问 1 个特定的非重复问题。

标签: mysql database-design sequelize.js constraints auto-increment


【解决方案1】:

关于使用 sequelize 生成模型的解决方案:

如何在使用 MySQL 的 sequelize 中提供自增自定义值?

CreateTable 查询中的问题所示,AUTO_INCREMENT 只是指它自己的记录数,即如果我们有 2 条记录,查询语句将显示该计数为 AUTO_INCREMENT = 2强>

如何在唯一键或外键中自定义约束名称?

使用 addConstraint() 函数我们可以为外键和唯一键添加约束以及自定义约束名称。显示外键的 sn-p:

return queryInterface.addConstraint(
'Tabletests',
['GeneratedBy'],
  {
    type: 'foreign key',
    name: 'GeneratedBy_FK_1',
    references: {
      table: 'TableUsers',
      field: 'Uid'
    },
    onUpdate: 'cascade',
  }
);

【讨论】:

    猜你喜欢
    • 2016-04-17
    • 2021-07-07
    • 2015-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-02
    相关资源
    最近更新 更多