est-ce possible avec une seule requête que nous pouvons faire toutes les colonnes et les rangées nulle ou zéro (0) comme valeur? P>
J'ai essayé mais j'ai échoué à faire 2 3 tables dans une base de données; Pour les faire nulle. p>
3 Réponses :
Peut-être c'est ce que vous voulez ou non. Je ne comprends pas pourquoi vous voudriez définir des valeurs de colonne dans les lignes existantes à tous les Pour vider une table efficacement, utilisez si vous voulez définir tout les colonnes d'une table pour valoriser, utilisent simplement une mise à jour code> et répertoriez toutes les colonnes: p> Cependant, je ne vois pas pourquoi cela serait utile. p> p> null code> ou 0 code>. Ne serait-il pas mieux juste pour vider la table, il n'y a donc pas de lignes? Ensuite, vous pouvez ajouter de nouvelles lignes que vous voulez. tronquable code>: p>
Je ne comprends pas non plus, mais je pense que vous avez cloué la réponse.
Merci beaucoup. Je vais bien avec tronquer aussi. Mais il suffit de demander que c'est une possibilité de faire toutes les tables de base de données vide / null b> avec requête unique i>.?
@ angel.bonev merci beaucoup .. Mais ici maintenant, je dois écrire une énorme requête avec des noms de colonne là-bas en ce qui concerne les noms de table. Comme je vais avoir une grande bonne base de données.
@ angel.bonev vous devez fournir votre propre réponse plutôt que de commenter celui-ci.
@ angel.bonev Après avoir exécuté vos questions, je reçois des questions de mise à jour. Ici, ils sont: ** mysqlcmd code> ** update test.tab1 nom de jeu = 0; code> Mettre à jour le test.Tab1 Set Email = 0; Code> Mettre à jour le test.Tab1 Set Téléphone = 0; code> Mettre à jour le test.TAB2 Set ID = 0; Code> Mise à jour test.tab2 Set nom = 0; code> update test.tab2 Set Email = 0; Code> Mettre à jour le test.TAB2 Téléphone = 0; code>
@ apparemment_in2_geeks Vous pouvez voir ma réponse ci-dessous, commençons là-bas
Pour mettre à jour plusieurs tables dans MySQL, vous pouvez utiliser ceci:
SET @query :="";
SELECT @query := CONCAT("UPDATE `", C.TABLE_SCHEMA,"`.`", C.TABLE_NAME, "` SET `",C.COLUMN_NAME,"` = '' ") AS MySQLCMD from information_Schema.Columns C LEFT JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE U ON C.COLUMN_NAME = U.COLUMN_NAME WHERE C.TABLE_SCHEMA = "you_db_name_here" AND U.CONSTRAINT_NAME is NULL;
PREPARE stmt FROM @query;
EXECUTE stmt;
$sql="SELECT CONCAT('UPDATE ', TABLE_SCHEMA,'.', TABLE_NAME, ' SET ',COLUMN_NAME,' = 0;') AS MySQLCMD FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'DATABASE_NAME' ";
$result=$conn->query($sql);
if($result->num_rows> 0){
while($row=$result->fetch_assoc()){
$exe=$conn->query($row['MySQLCMD']);
}
}Here's the Answer for what i need. Thanks alot for all your precious suggestions. And special thanks to : angel.bonev
Il est possible avec une seule requête, nous pouvons faire toutes les colonnes et les lignes null ou zéro (0) '- n ° 1 mise à jour par table. Vous pouvez écrire du code pour interroger des informations_schema, des colonnes et générer SQL pour la soumission via Dynamic SQL. Mais cela va être en désordre si vous avez des clés étrangères. (Même s'applique à tronquer)
Pourquoi voulez-vous ne plus stocker que des valeurs nulelles? N'a aucun sens pour moi.
@jarlh merci beaucoup. Je demande simplement que c'est une possibilité de faire toutes les tables de base de données vides / null b> avec une requête unique i>.?
La réponse est non.