94 votes

MySQL "CREATE TABLE IF NOT EXISTS" -> Erreur 1050

Utilisation de la commande :

CREATE TABLE IF NOT EXISTS `test`.`t1` (
    `col` VARCHAR(16) NOT NULL
) ENGINE=MEMORY;

L'exécution de cette opération deux fois dans le MySQL Query Browser entraîne :

La table 't1' existe déjà Erreur 1050

J'aurais pensé que la création de la table « SI N'EXISTE PAS » ne jetterait pas d'erreurs. J'ai raté quelque chose ou c'est un insecte ? Je lance la version 5.1. Merci.

69voto

Eli Points 3654

Fonctionne bien pour moi en 5.0.27

Je reçois juste un avertissement (pas une erreur) que la table existe ;

35voto

gdt Points 524

Comme nous l'avons déjà dit, il s'agit d'un avertissement et non d'une erreur, mais (si vous voulez que les choses s'exécutent sans avertissement, vous pouvez désactiver cet avertissement, puis le réactiver une fois que vous avez terminé.

SET sql_notes = 0;      -- Temporarily disable the "Table already exists" warning
CREATE TABLE IF NOT EXISTS ...
SET sql_notes = 1;      -- And then re-enable the warning again

12voto

Sachin Parse Points 965

Vous pouvez utiliser la requête suivante pour créer une table vers une base de données particulière dans MySql.

create database if not exists `test`;

USE `test`;

SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;

/*Table structure for table `test` */

CREATE TABLE IF NOT EXISTS `tblsample` (

  `id` int(11) NOT NULL auto_increment,   
  `recid` int(11) NOT NULL default '0',       
  `cvfilename` varchar(250)  NOT NULL default '',     
  `cvpagenumber`  int(11) NULL,     
  `cilineno` int(11)  NULL,    
  `batchname`  varchar(100) NOT NULL default '',
  `type` varchar(20) NOT NULL default '',    
  `data` varchar(100) NOT NULL default '',
   PRIMARY KEY  (`id`)

);

10voto

Balkishan Points 231
create database if not exists `test`;

USE `test`;

SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;

/*Table structure for table `test` */

***CREATE TABLE IF NOT EXISTS `tblsample` (
  `id` int(11) NOT NULL auto_increment,   
  `recid` int(11) NOT NULL default '0',       
  `cvfilename` varchar(250)  NOT NULL default '',     
  `cvpagenumber`  int(11) NULL,     
  `cilineno` int(11)  NULL,    
  `batchname`  varchar(100) NOT NULL default '',
  `type` varchar(20) NOT NULL default '',    
  `data` varchar(100) NOT NULL default '',
   PRIMARY KEY  (`id`)
);***

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X