如何解决:在迁移中,原始查询在varchar中序列化广告反斜杠转义,这会在将值插入数据库时​​导致错误

迁移从一个表中选择数据,然后将数据插入到另一个表中。插入时,sequelize在varchar'v_occupation'值中添加反斜杠转义符,这会导致插入错误。

我尝试过更换,并在v_occuption上进行了更换,但全部都是徒劳的

const queryToUpdateExistingTable = 
`INSERT INTO social_profile ( fk_user_id,fk_marital_status_id,fk_military_service_id,v_occupation,fk_education_id,v_bio,v_pets,v_places_lived ) 
VALUES (:fk_user_id,:fk_marital_status_id,:fk_military_service_id,:v_occupation,:fk_education_id,:v_bio,:v_pets,:v_places_lived) 
return queryInterface.sequelize.query(queryToUpdateExistingTable,{type: queryInterface.sequelize.QueryTypes.INSERT,replacements: {fk_user_id: uProfileData.id,fk_marital_status_id:uProfileData.fk_marital_status_id,fk_military_service_id: uProfileData.fk_military_service_id,v_occupation: uProfileData.v_occupation,fk_education_id: uProfileData.fk_education_id,v_bio: uProfileData.v_bio,v_pets: uProfileData.v_pets,v_places_lived: uProfileData.v_places_lived
                            }});});
qq329119652 回答:如何解决:在迁移中,原始查询在varchar中序列化广告反斜杠转义,这会在将值插入数据库时​​导致错误

尝试将v_occupation直接添加到查询字符串中,而不要使用替换符。您可以使用+添加字符串,也可以使用Template String使用占位符在反引号包围的字符串中插入值。

const queryToUpdateExistingTable = `
INSERT INTO social_profile 
(
    fk_user_id,fk_marital_status_id,fk_military_service_id,v_occupation,fk_education_id,v_bio,v_pets,v_places_lived
)
VALUES 
(
    :fk_user_id,:fk_marital_status_id,:fk_military_service_id,${uProfileData.v_occupation},:fk_education_id,:v_bio,:v_pets,:v_places_lived
)`
return queryInterface.sequelize.query(queryToUpdateExistingTable,{
    type: queryInterface.sequelize.QueryTypes.INSERT,replacements: {
        fk_user_id: uProfileData.id,fk_marital_status_id: uProfileData.fk_marital_status_id,fk_military_service_id: uProfileData.fk_military_service_id,fk_education_id: uProfileData.fk_education_id,v_bio: uProfileData.v_bio,v_pets: uProfileData.v_pets,v_places_lived: uProfileData.v_places_lived
    }
})
本文链接:https://www.f2er.com/3161231.html

大家都在问