Pourquoi utiliser“, où 1=2” sur un SQL syntaxe CREATE TABLE?
CREATE TABLE EMPL_DEMO AS SELECT * FROM employees WHERE 1=2;
J'ai lu cette déclaration quelque part sur internet, mais je ne pouvais pas comprendre la WHERE 1=2
.
Quelqu'un s'il vous plaît, m'expliquer cela?
- tl;dr 1=2 est évaluée comme FAUSSE pour toutes les lignes
- C'est un petit hack pour éviter d'avoir à taper l'ensemble de la structure de colonne de nouveau. Il permettra de créer une table avec les mêmes noms de colonnes et les types de données, mais sans copier toutes les lignes de données ou les touches.
- cela permet d'économiser de 2 (deux) char lorsqu'il est saisi "1=2" : 3 char, "Faux" : 5 char
- Veuillez noter que ce n'est en aucun cas la norme SQL. Il fonctionne avec MySQL, ce n'est pas sûr d'autres dialectes.
Vous devez vous connecter pour publier un commentaire.
Ce type de commande est généralement utilisée pour copier la structure d'une table à l'autre. Dans ce cas,
EMPL_DEMO
aura la même structure de colonne deemployees
, à l'exception des touches ou des contraintes.La
1=2
évalue toujours àFalse
qui vous empêche de copier des lignes.CREATE TABLE new_table LIKE old_table
LIKE old_table
n'est pas un SQL Server construire...LIKE old_table
n'est pas dans SQL Server, que je sache. Je vais devoir garder un oeil ouvert pour elle. Regarde snazzy.name
ettype
de la colonne, Considèrent qu'il y a d'autres propriétés que structure de colonne - par exemple, la valeur par défaut, alias et etc. ;).CREATE TABLE
(Créer Un Nouveau Tableau)EMPL_DEMO
(Appelé EMPL_DEMO)AS
(Avec Les Données et la structure de l')SELECT * FROM employees WHERE 1=2;
(Tout ce qui est des employés, où 1=2. Depuis le 1er n'est jamais 2 - copie de la structure et de tous les 0 les lignes correspondantes)..Essentiellement de copier une structure de données.
Cette syntaxe fait la même chose, mais c'est plus évident, il crée une table avec la même structure, avec pas de données.
LIMIT
. Mais il semble MSSQL n'en a pas (ce qui me semble une bonne raison de ne pas utiliser MSSQL). Apparemment, ils ontTOP
, mais les résultats de google ont donc beaucoup de gens ne l'utilisez pas, il y a probablement quelques hijink qui l'entourent.Cela peut être utile pour copier la structure d'une table à l'exclusion de ses contraintes, des clés, des indices, de l'identité de la propriété et de lignes de données.
Cette requête permettra de créer
EMPL_DEMO
table sans les lignes copiées à partir de la table employés commeWHERE 1=2
condition est toujours va être évalué commeFALSE
.Confiance à Google, mon ami. À partir du bas de la premier résultat de google cette déclaration:
Oracle:
Mieux comprendre dans la Base de données Teradata:
Dans SQL Server
select * into table1 à partir de table2 where 1=2(Seule Structure)
select * into table1 à partir de table2 where 1=1(Structure de données)