mysql不同数据库不同数据表导入数据_MySQL
背景
现在我有这么一个需求:
数据库A的user表需要导入到数据库B的account表
user表字段:uid,username,email,password,regdate,salt
account表字段:id,name,email,password,type,salt
导入的字段只有username,email,password,salt,并且regdate需要符合某个条件
下面分几种情况来写sql,主要区分insert into和replace into
情况
导入的数据在B库的表中完全不存在
直接insert into就好,使用replace into效果一样
INSERT INTO `B`.`account`(NAME,PASSWORD,email,salt) SELECT username,PASSWORD,email,salt FROM `A`.`users` WHERE regdate>1418313600
导入的数据部分存在
数据部分存在为了区分需要在两个表添加唯一索引,这个唯一索引(UNIQUE)必须是导入的字段里面的值
我在两个表中分别为username和name字段添加唯一索引
直接替换
replace into在操作的时候如果两表数据重复(必须定义UNIQUE),会先删掉那一行(注意是一整行),然后再执行insert into
造成的后果就是,account表中的type字段如果原来有值,会直接删掉,并重新插入,即变成默认值了
REPLACE INTO `B`.`account`(NAME,PASSWORD,email,salt) SELECT username,PASSWORD,email,salt FROM `A`.`users` WHERE regdate>1418313600
忽略重复
用IGNORE关键字,如果遇到重复,不会操作当前行
INSERT IGNORE INTO `B`.`account`(NAME,PASSWORD,email,salt) SELECT username,PASSWORD,email,salt FROM `A`.`users` WHERE regdate>1418313600
部分更新
比如果只想更新password和salt字段,可以用ON DUPLICATE KEY UPDATE
INSERT INTO `B`.`u_account`(NAME,PASSWORD,email,salt) SELECT username,PASSWORD,email,salt FROM `A`.`bbs_ucenter_members` WHERE regdate>1418313600 ON DUPLICATE KEY UPDATE PASSWORD=VALUES(PASSWORD),salt=VALUES(salt)
总结
replace into比较暴力,网上也有说慎重使用的,最好用insert into代替
疑问
以上的操作是两个数据库在同一台服务器上的,直接一条sql就可以搞定
假如要导的两个库在不同的两个服务器上要怎么做啊?
目前暂时的办法:
将A库中的user表导入到B库所在的另一台服务器上,然后写一条sql搞定
或者查询出指定数据,导出sql,在sql中将insert into替换为insert ignore into(有局限性)
以上所述就是本文的全部内容了,希望大家能够喜欢。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds



L'un des changements majeurs introduits dans MySQL 8.4 (la dernière version LTS en 2024) est que le plugin « MySQL Native Password » n'est plus activé par défaut. De plus, MySQL 9.0 supprime complètement ce plugin. Ce changement affecte PHP et d'autres applications

La configuration d'un pool de connexions MySQL à l'aide de PHP peut améliorer les performances et l'évolutivité. Les étapes comprennent : 1. Installer l'extension MySQLi ; 2. Créer une classe de pool de connexions ; 3. Définir la configuration du pool de connexions ; 4. Créer une instance de pool de connexions ; Grâce au regroupement de connexions, les applications peuvent améliorer les performances en évitant de créer une nouvelle connexion à la base de données pour chaque requête.

PHP fournit les méthodes suivantes pour supprimer des données dans les tables MySQL : Instruction DELETE : utilisée pour supprimer les lignes correspondant aux conditions de la table. Instruction TRUNCATETABLE : utilisée pour effacer toutes les données de la table, y compris les ID auto-incrémentés. Cas pratique : Vous pouvez supprimer des utilisateurs de la base de données à l'aide de formulaires HTML et de code PHP. Le formulaire soumet l'ID utilisateur et le code PHP utilise l'instruction DELETE pour supprimer l'enregistrement correspondant à l'ID de la table des utilisateurs.

La page est vide après que PHP se connecte à MySQL, et la raison pour laquelle la fonction Die () échoue. Lorsque vous apprenez la connexion entre PHP et la base de données MySQL, vous rencontrez souvent des choses déroutantes ...

Php ...

De nombreux développeurs de sites Web sont confrontés au problème de l'intégration de Node.js ou des services Python sous l'architecture de lampe: la lampe existante (Linux Apache MySQL PHP) a besoin d'un site Web ...

Comment partager la même page du côté PC et mobile et gérer les problèmes de cache? Dans l'environnement Nginx PHP MySQL construit à l'aide de l'arrière-plan Baota, comment faire le côté PC et ...

Une explication détaillée du problème de la déduction des soldes en combinaison avec des verrous et des transactions optimistes PHP dans cet article analysera en détail une déduction de solde à l'aide de PHP, de verrous optimistes et de transactions de base de données, seulement ...
