2017-10-26 15 views
0

現在、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)

答えて

0

外部キー(プライマリでない場合)データベース内のデータが、テーブルのデータと一致するかどうかをチェックします(もちろん、外部キーの列にあります)

関連する問題