Last active
October 27, 2024 00:48
-
-
Save lucasscariot/5b8747fbc8a6948a805c646fae4ceef8 to your computer and use it in GitHub Desktop.
Composite Primary Key in Sequelize
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* Migration | |
*/ | |
'use strict'; | |
module.exports = { | |
up: function(queryInterface, Sequelize) { | |
return queryInterface.createTable('Users', { | |
firstName: { | |
type: Sequelize.STRING | |
}, | |
lastName: { | |
type: Sequelize.STRING | |
}, | |
email: { | |
type: Sequelize.STRING | |
}, | |
createdAt: { | |
allowNull: false, | |
type: Sequelize.DATE | |
}, | |
updatedAt: { | |
allowNull: false, | |
type: Sequelize.DATE | |
} | |
}) | |
.then(() => { | |
return queryInterface.sequelize.query('ALTER TABLE "Users" ADD CONSTRAINT "username" PRIMARY KEY ("firstName", "lastName")'); | |
}) | |
}, | |
down: function(queryInterface, Sequelize) { | |
return queryInterface.dropTable('Users'); | |
} | |
}; | |
/* | |
* Model | |
*/ | |
'use strict'; | |
module.exports = function(sequelize, DataTypes) { | |
var User = sequelize.define('users', { | |
firstName: { | |
type: DataTypes.STRING, | |
primaryKey: true, | |
}, | |
lastName: { | |
type: DataTypes.STRING, | |
primaryKey: true, | |
}, | |
email: DataTypes.STRING | |
}); | |
User.removeAttribute('id'); | |
return User; | |
}; | |
@ narayana1043
Todavía tienes que usar lawhere
cláusula enfindOne()
algo como estofindOne({where:{composite_key_1:value})
Hágame saber si esto fue útil, gracias.Cuando creo una clave compuesta, al especificar
primaryKey: true
varias veces, ¿puedo averiguar el nombre de la clave compuesta para usar en la cláusula where?Gracias
Hi!!! You could know how to get the name thanks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
When I create a composite key, by specifying
primaryKey: true
multiple times, am I able to find out the name of the composite key to use in the where clause?Thanks