powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / минимальный профаилер
1 сообщений из 1, страница 1 из 1
минимальный профаилер
    #39179446
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на всякий , оставлю я здесь сей код.
Уже 3 раз его с нуля пишу...

Это минимальный скрип проверять все поля на нули...
можно вписывать- любые проверки.

Если кому понадобится, то и хорошо, а не понадобится...
ну значит не понадобится...


Кстати, какой-нибудь беслатный профайлер кто знает ???.... типа
Таленд Дата Кволити, но без подвохов, типа нельзя вывести результаты....

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
drop table if exists t1;
create  table t1
(tbl_name VARCHAR(200),
 col_name VARCHAR(200),
 col_type VARCHAR(200),
 c_all INT,
 c_null INT
);

DROP PROCEDURE IF EXISTS sp1;

DELIMITER  //

create PROCEDURE `sp1`()
begin
  declare c_all, c_null INT;
  declare sql_str VARCHAR(2000);
  DECLARE done INT DEFAULT 0;
 
  declare CUR cursor for
  select 
   concat(
     'insert into t1 select ''',
       C.TABLE_NAME,''' tbl_name, ''',
       C.COLUMN_NAME,''' col_name, ''',
       REPLACE(C.COLUMN_TYPE,'''','"'),''' col_type, ',
     ' count(1) c_all,',
     ' sum(',COLUMN_NAME,' is NULL) c_null',
     ' from ', C.TABLE_NAME
   ) sql_str
from information_schema.COLUMNS C
JOIN information_schema.TABLES T 
ON C.TABLE_NAME = T.TABLE_NAME 
where C.TABLE_SCHEMA = 'sakila'   -- use your schema
AND TABLE_TYPE = 'BASE TABLE';

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;

open CUR;
cursor_label:
LOOP FETCH CUR into sql_str;
        IF (1 = done)  THEN
            LEAVE cursor_label;
        END IF;

    -- select sql_str; -- debug
    set @s = sql_str;
    IF LENGTH(@s) < 10   THEN
        LEAVE cursor_label;
    END IF;
    PREPARE stmt FROM @s;
    EXECUTE stmt;

END LOOP cursor_label;
CLOSE CUR;

select * from t1 ;
end //
DELIMITER ;

call sp1;
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / минимальный профаилер
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]