sql >> Databasteknik >  >> RDS >> Mysql

Skapa en nummertabell i MySQL

Du saknar semikolon, kommatecken, och även efter att ha korrigerat syntax är det fortfarande inte en bra idé att välja max från tabellen varje gång bara för att infoga en rad till i en loop.

Släpp det och använd generatorer från http:/ /use-the-index-luke.com/blog/2011-07-30/mysql-row-generator :

CREATE OR REPLACE VIEW generator_16
AS SELECT 0 n UNION ALL SELECT 1  UNION ALL SELECT 2  UNION ALL 
   SELECT 3   UNION ALL SELECT 4  UNION ALL SELECT 5  UNION ALL
   SELECT 6   UNION ALL SELECT 7  UNION ALL SELECT 8  UNION ALL
   SELECT 9   UNION ALL SELECT 10 UNION ALL SELECT 11 UNION ALL
   SELECT 12  UNION ALL SELECT 13 UNION ALL SELECT 14 UNION ALL 
   SELECT 15;

CREATE OR REPLACE VIEW generator_256
AS SELECT ( ( hi.n << 4 ) | lo.n ) AS n
     FROM generator_16 lo, generator_16 hi;

CREATE OR REPLACE VIEW generator_4k
AS SELECT ( ( hi.n << 8 ) | lo.n ) AS n
     FROM generator_256 lo, generator_16 hi;

CREATE OR REPLACE VIEW generator_64k
AS SELECT ( ( hi.n << 8 ) | lo.n ) AS n
     FROM generator_256 lo, generator_256 hi;

CREATE OR REPLACE VIEW generator_1m
AS SELECT ( ( hi.n << 16 ) | lo.n ) AS n
     FROM generator_64k lo, generator_16 hi;

Och om du av någon anledning verkligen behöver en tabell med siffror, gör bara:

INSERT INTO numbers(number)
SELECT n FROM generator_64k WHERE n < 64000


  1. Android SQLite LIKE escape jokertecken

  2. Hur man sammanfogar sträng- och NULL-värden i SQL Server

  3. Anslutning till Db dör efter>4<24 i spring-boot jpa hibernate

  4. MariaDB MINUS Operatör förklaras