Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Tworzenie tabeli liczb w MySQL

Brakuje średników, przecinków, a nawet po poprawieniu składni nadal nie jest dobrym pomysłem wybieranie wartości max z tabeli za każdym razem, aby wstawić jeszcze jeden wiersz w pętli.

Porzuć to i użyj generatorów z 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;

A jeśli z jakiegoś powodu naprawdę potrzebujesz tabeli liczb, po prostu zrób:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sterownik MySQL JDBC 5.1.33 — problem ze strefą czasową

  2. Czy można zrobić klucz obcy MySQL w jednej z dwóch możliwych tabel?

  3. Python i MySql:Unicode i kodowanie

  4. MySQL w chmurze — zalety i wady Amazon RDS

  5. błąd wykonania:java.lang.ClassNotFoundException:com.mysql.jdbc.Driver