java - replace into会清除中间表的其他数据?
高洛峰
高洛峰 2017-04-18 10:30:35
0
2
425

系统启动的时候初始化一些基础信息,使用了存储过程。
每次启动系统的时候调用存储过程。
表设计如下

存储过程如:

现在遇到的问题是每次启动系统时非中间表无任何问题,但是中间表的已有其他数据会全部清空。
为何会出现这样问题?
如何解决?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

répondre à tous(2)
洪涛

Remplacer :

Remplacer est similaire à insérer. Si le nouvel enregistrement d'une table est identique aux anciennes données d'une PRIMARY KEY ou d'UNIQUE INDEX, les anciennes données seront supprimées avant que les nouvelles données ne soient insérées.

Contraintes de clés étrangères et suppressions en cascade

Je suppose qu'il y a des contraintes de clé étrangère dans votre table de données, donc chaque fois que la clé "id" de l'utilisateur et du rôle de la table parent est supprimée, le contenu correspondant de la table user_role sera également supprimé en cascade : lors de la suppression en cascade lors de la mise à jour cascade

Les contraintes de clé étrangère de la table user_info peuvent être les suivantes :

CONSTRAINT  FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) on delete cascade on update cascade ,

CONSTRAINT  FOREIGN KEY (`role_id`) REFERENCES `role` (`id`) on delete cascade on update cascade
黄舟

Je pense que vous avez dû effacer les données à d'autres endroits. Vous n'avez pas rencontré de problèmes similaires en utilisant replace into.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal