ПредишенСледващото

[MySQL] Base структура за една заявка

  • Information_schema.tables поемат от името на първата таблица и първото име на базата данни, към който се отнася. Съхранявайте ги в потребителските променливи.
  • От information_schema.columns маса плъзнете имената на всички колони от своя страна.
  • За всеки един от тях, проверка на следните условия:
    • ако на масата се е променило.
      • ако е така, дали базата данни се е променило.
        • ако сте променили и масата, и базата данни, за сключване на ново име на база данни и новото име на таблицата.
        • ако смените само на масата, на изхода на името на новата маса.
      • ако масата не се е променило, все още се види дали базата данни се е променило.
        • ако е така, показва името на новата база данни и новото име на маса (това е доста рядко явление - това се случва, когато на базата данни н-1 миналата таблицата с име A, и н в базата данни с името на първата таблица А).
        • Ако нищо не се промени, той не се направи извод нищо.
  • Просто се покаже името на полето.

Така че би било хубаво да се показва за всеки номер, таблица на база данни в него (които няма да се счита за ръце), както и за всяка таблица броя на записите към него. Първият вид на заявката се изпълнява

SELECT (@n) ОТ (Изберете @n: = 0x20, (/ * Това SELECT осигурява инициализация съответните променливи * / SELECT (CONCAT (@a: = table_schema, / * Първо DB * / @b: = таблица_име, / * Първи маса * / / * Променливи за намаляване на продължителността на запитването * / Стх: = 0x3c62723e, / * низ преводи
. Тъй като ние сме с помощта

, би било възможно да се направи проста п * / @d: = 0x2d2d2d, / * се използва при форматиране --- * / @s изходните данни: = 0x2028, / * пространство и (* / @q: = 0x29, / *) * / / * тази променлива се натрупва изходните данни линия * / @n: = / * име на първата база данни и първата маса * / CONCAT (0x3c7072653e, / *
 - чисто, което е по-лесно да се чете (Непропорционални шрифта и т.н.) * / @a, @s, (Изберете (COUNT (*)) ОТ (information_schema.TABLES) КЪДЕ (table_schema = @ а)), / * Посочете броя на масите в тази база данни * / @q, Стх, @d, @b, @s, IFNULL ((SELECT (table_rows) от (information_schema.TABLES), където (table_name = @ б)), 0x2d), / * Показва броя на влизанията в тази таблица * / @q))) от (information_schema.tables) LIMIT / ** / 1 / * това е едно пространство, което не успя да се отърве от * /), (SELECT (COUNT (*)) от (information_schema.columns) / * за добавяне цикъл danyh на таблици и колони в базата от данни, натрупани низ * / КЪДЕ (@n :! = CONCAT_WS (Стх, @n, CONCAT (IF (таблица_име = @ б, (/ * Таблица променило * / IF (table_schema ! = @ а, (/ * Промяна маса pomenyatsya запозна DB * / SELECT (CONCAT (@a: = table_schema, @s, (Изберете (COUNT (*)) от (information_schema.TABLES) КЪДЕ (table_schema = (@ а))), / * Посочете броя на масите в базата данни * / @q, Стх, @d, @b: = table_name, @s, IFNULL ((SELECT (table_rows) от (information_schema.TABLES), където (table_name = @ б) и (table_schema = @ а)), 0x2d ) / * Посочете броя на записите в таблицата * / @q, Стх, 0x2d))), (/ * масата за смяна DB не Pomena * / SELECT (CONCAT (@d, @b: = tABLE_NAME, @s, IFNULL ((изберете (table_rows) от (information_schema.TABLES) когато (таблица_име = @ б) И (table_schema = @ а)), 0x2d), / * Посочете броя на записите в таблицата * / @q, Стх, 0x2d) )))) (/ * в таблицата не се променило * / IF (table_schema! = @ а, (/ * в таблицата не се променило, променя базата данни (по стечение на обстоятелствата, в една и съща база данни, едно име на маса за Отори същото име като първи tabiltsy в пътеката. Гб) * / SELECT (CONCAT (@a: = table_schema, @s, (Изберете (COUNT (*)) от (information_schema.TABLES) КЪДЕ (table_schema = (@ а))), / * Посочете броя на масите в базата данни * / @q, Стх, @d, @b: = table_name, @s, IFNULL ((SELECT (table_rows) от (information_schema.TABLES), където (table_name = @ б) и (table_schema = @ а)), 0x2d ) / * Посочете броя на записите в таблицата * / @q, Стх, 0x2d))), (/ * маса не се променя, базата данни не се е променило * / SELECT (0x2d))))), / * в крайна сметка ние се заключи, име колона * / 0x2d2d2d2d2d, COLUMN_NAME)))> 0)) A--

В uzhaty въпрос изглежда така:

Свързани статии

Подкрепете проекта - споделете линка, благодаря!