0
votes

Query Single MySQL: Pour faire valoir NULL des tables et de leurs colonnes dans la base de données

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?

J'ai essayé mais j'ai échoué à faire 2 3 tables dans une base de données; Pour les faire nulle.


4 commentaires

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 avec une requête unique .?


La réponse est non.


3 Réponses :


1
votes

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 null ou 0 . 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.

Pour vider une table efficacement, utilisez tronquable : xxx

si vous voulez définir tout les colonnes d'une table pour valoriser, utilisent simplement une mise à jour et répertoriez toutes les colonnes: xxx

Cependant, je ne vois pas pourquoi cela serait utile.


6 commentaires

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 avec requête unique .?


@ 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 ** update test.tab1 Set ID = 0; update test.tab1 nom de jeu = 0; Mettre à jour le test.Tab1 Set Email = 0; Mettre à jour le test.Tab1 Set Téléphone = 0; Mettre à jour le test.TAB2 Set ID = 0; Mise à jour test.tab2 Set nom = 0; update test.tab2 Set Email = 0; Mettre à jour le test.TAB2 Téléphone = 0;


@ apparemment_in2_geeks Vous pouvez voir ma réponse ci-dessous, commençons là-bas



0
votes

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;


0 commentaires

0
votes
$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

0 commentaires