Bonsoir,
Selon la documentation officielle, avec MySQL, CREATE DATABASE et CREATE SCHEMA sont synonymes.
Je ne suis pas spécialiste de MySQL, mais je ne vois pas que l’on puisse faire mention du nom du catalogue dans l’instruction CREATE DATABASE, donc a fortiori dans les instructions telles que CREATE TABLE. A vérifier au près d’un expert MySQL.
Quoi qu’il en soit, si Temp et Test sont deux bases distinctes, vous pouvez parfaitement coder une instruction du genre de celle-ci, où la table T1 de la base Temp est mise à jour à partir de la table T2 de la base Test :
INSERT INTO Temp.T1 SELECT * FROM Test.T2 ; -- mise à jour de la table T1 de la base Temp à partir de la table T2 de la base Test ;
Au lieu de préfixer les noms des tables, vous pouvez préférer définit la base courante à l’aide de l’instruction USE :
1 2 3 4 5 6 7
| USE Temp ;
CREATE TABLE T1 (A TEXT NOT NULL) ;
INSERT INTO T1 VALUES ('Avec les SGBD SQL, il est d''usage de doubler les apostrophes pour les constantes de type caractère') ;
SELECT * FROM T1 ; |
« USE Temp » est en quelque sorte l’homologue MySQL de « SET MaBase = Temp » d’ACCESS.
Concernant les apostrophes :
Dans le cas de votre requête, avec les SGBD SQL, il est d’usage de doubler les apostrophes pour les constantes de type caractère :
'DUPONT' devient ''DUPONT''
=>
VALUES ('SELECT * FROM tbl_clients WHERE nom_client=''DUPONT=''')
Pour plus de sûreté, poser la question dans les forums des SGBD.
Désolé de ne pas être plus affirmatif....
Partager