Mysql
 sql >> база данни >  >> RDS >> Mysql

sequelize - Не може да се добави ограничение за външен ключ

Това е често срещана грешка, възникваща главно поради

1. Когато първичният ключ тип данни и външният ключ тип данни не съвпадна

return sequelize.define('RefreshToken', {
    userId: {
      type: DataTypes.INTEGER(11), // The data type defined here and 
      references: {
        model: 'Users',
        key: 'idUsers'
      }
    }, 


return sequelize.define('Users', {
    idUsers: {
      type: DataTypes.INTEGER(11),  // This data type should be the same
    },

2. Когато посоченият ключ не е първичен или уникален ключ.

Не можете да имате два първични ключа, така че другите референтни ключове трябва да бъдат дефинирани уникални. unique:true

 return sequelize.define('Users', {
    idUsers: {
      primaryKey: true  
    },
    mail: {
      type: DataTypes.STRING(45),
      allowNull: false,
      primaryKey: true   // You should change this to 'unique:true'. you cant hv two primary keys in one table. 
    }


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL заявка със средно и групиране по

  2. Правилно показване на резултатите от mySQL заявка "един към много".

  3. Мога ли да преместя MySQL таблицата на второ устройство?

  4. MySQL тип данни INT(11) докато UNSIGNED INT(10)?

  5. Използваните изрази SELECT имат различен брой колони