簡體   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