現在、2つのテーブル間で内部結合を実行しようとしています。 最初のものはSmartMonumentというデータベースにあり、もう1つはSmartMonumentCBというデータベースにあります。ここ2つの異なるデータベースの2つのテーブル間で内部結合を続行します
は、それらのテーブルの初期化のためのコードである 'database.js'(SmartMonumentを参照)において
:
const CompaniesForClient=sequelize.define('cfc', {
scrapperName: {type: Sequelize.STRING, allowNull: false},
clientID : {type: Sequelize.INTEGER(10), allowNull: false}
});
CompaniesForClient.sync();
module.exports={sequelize, CompaniesForClient};
第二テーブルがある:
const Companies = sequelize.define('companies', {
scrapperName: {type: Sequelize.STRING, allowNull: false},
scrapperAddress: {type: Sequelize.STRING(500)}
});
Companies.sync();
module.exports = {sequelize, Companies};
これらのテーブルの両方がうまく作成されているので、両方のテーブルがscrapperNameフィールドに関連するように何かを追加しようとします。
私は、このようなようにそれをやろう:
CompaniesForClient.hasOne(CompaniesDB.Companies, {foreignKey: 'scrapperName'});
私の目標は、このようなのような一つのリクエストでの企業のすべての分野で、すべてのCompaniesForClientフィールドを読むことができるようにultimatlyです:
CompaniesForClient.findAll({where:{clientID: param}, include: [{model: Companies}];
今すぐ次のエラーが表示されます。
Unhandled rejection SequelizeDatabaseError: Cannot add foreign key constraint at Query.formatError(/home/ubuntu/backendDev/node_modules/sequelize/lib/dialects/mysql/query.js:222:16) at Query.connection.query [as onResult] (/home/ubuntu/backendDev/node_modules/sequelize/lib/dialects/mysql/query.js:55:23) at Query.Command.execute (/home/ubuntu/backendDev/node_modules/mysql2/lib/commands/command.js:30:12) at Connection.handlePacket (/home/ubuntu/backendDev/node_modules/mysql2/lib/connection.js:515:28) at PacketParser.onPacket (/home/ubuntu/backendDev/node_modules/mysql2/lib/connection.js:94:16) at PacketParser.executeStart (/home/ubuntu/backendDev/node_modules/mysql2/lib/packet_parser.js:77:14) at Socket. (/home/ubuntu/backendDev/node_modules/mysql2/lib/connection.js:102:29) at emitOne (events.js:115:13) at Socket.emit (events.js:210:7) at addChunk (_stream_readable.js:266:12) at readableAddChunk (_stream_readable.js:253:11) at Socket.Readable.push (_stream_readable.js:211:10) at TCP.onread (net.js:585:20)