繁体   English   中英

使用 sequelize 和 MySQL 方言生成模型

[英]Model Generation using sequelize with MySQL dialect

关于使用 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

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM