powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / mysql-функция выдает ошибки
11 сообщений из 11, страница 1 из 1
mysql-функция выдает ошибки
    #38593863
mstdmstd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всем привет,
надо создать mysql-функцию
В файле такой скрипт :
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
DELIMITER //
DROP FUNCTION IF EXISTS NORMALIZE_TAGS//
CREATE FUNCTION NORMALIZE_TAGS ( title VARCHAR(512) )
RETURNS VARCHAR(512) DETERMINISTIC
BEGIN
    DECLARE result VARCHAR(512);
    SET title = REPLACE( title, ' ', ',' );
    SET result = REPLACE( title, ',,', ',' );
    WHILE (result <> title) DO 
        SET title = result;
        SET result = REPLACE( title, ',,', ',' );
    END WHILE;
    set result = concat(',',result, ',');
      if result REGEXP('^[,]+$') then 
        return null;
      end if;
    RETURN result;
END//
DELIMITER ;



При его запуске в phpmyadmin получаю :
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Вероятно, SQL-запрос содержит ошибку. При наличии таковой, ниже будет выведена ошибка MySQL-сервера, облегчающая диагностику проблемы.

ERROR: Неизвестная пунктуация @ 11
STR: //
SQL: DELIMITER //
DROP FUNCTION IF EXISTS NORMALIZE_TAGS//DELIMITER //
DROP FUNCTION IF EXISTS NORMALIZE_TAGS//DELIMITER //
DROP FUNCTION IF EXISTS NORMALIZE_TAGS//


SQL-запрос:

DELIMITER // DROP FUNCTION IF EXISTS NORMALIZE_TAGS//

Ответ MySQL: Документация
#1548 - Cannot load from mysql.proc. The table is probably corrupted 



Представитель клиента говорит что скрипт полностью рабочий
Настройки по умолчанию
Может что-то нужно поменять?

version 5.5.30-alt3
Код: plsql
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.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
SHOW VARIABLES :

auto_increment_increment 	1
auto_increment_offset 	1
autocommit 	ON
automatic_sp_privileges 	ON
back_log 	50
basedir 	/usr/
big_tables 	OFF
binlog_cache_size 	32768
binlog_direct_non_transactional_updates 	OFF
binlog_format 	STATEMENT
binlog_stmt_cache_size 	32768
bulk_insert_buffer_size 	8388608
character_set_client 	utf8
character_set_connection 	utf8
character_set_database 	utf8mb4
character_set_filesystem 	binary
character_set_results 	utf8
character_set_server 	utf8
character_set_system 	utf8
character_sets_dir 	/usr/share/mysql/charsets/
collation_connection 	utf8_general_ci
collation_database 	utf8mb4_general_ci
collation_server 	utf8_general_ci
completion_type 	NO_CHAIN
concurrent_insert 	AUTO
connect_timeout 	10
datadir 	/db/
date_format 	%Y-%m-%d
datetime_format 	%Y-%m-%d %H:%i:%s
default_storage_engine 	InnoDB
default_week_format 	0
delay_key_write 	ON
delayed_insert_limit 	100
delayed_insert_timeout 	300
delayed_queue_size 	1000
div_precision_increment 	4
engine_condition_pushdown 	ON
error_count 	0
event_scheduler 	DISABLED
expire_logs_days 	0
external_user 	
flush 	OFF
flush_time 	0
foreign_key_checks 	ON
ft_boolean_syntax 	+ -><()~*:""&|
ft_max_word_len 	84
ft_min_word_len 	4
ft_query_expansion_limit 	20
ft_stopword_file 	(built-in)
general_log 	OFF
general_log_file 	/db/comp-athlon-ii-d14b9b.log
group_concat_max_len 	1024
have_compress 	YES
have_crypt 	YES
have_csv 	YES
have_dynamic_loading 	YES
have_geometry 	YES
have_innodb 	YES
have_ndbcluster 	NO
have_openssl 	DISABLED
have_partitioning 	YES
have_profiling 	YES
have_query_cache 	YES
have_rtree_keys 	YES
have_ssl 	DISABLED
have_symlink 	YES
hostname 	comp-athlon-ii-d14b9b.localdomain
identity 	0
ignore_builtin_innodb 	OFF
init_connect 	
init_file 	
init_slave 	
innodb_adaptive_flushing 	ON
innodb_adaptive_hash_index 	ON
innodb_additional_mem_pool_size 	8388608
innodb_autoextend_increment 	8
innodb_autoinc_lock_mode 	1
innodb_buffer_pool_instances 	1
innodb_buffer_pool_size 	134217728
innodb_change_buffering 	all
innodb_checksums 	ON
innodb_commit_concurrency 	0
innodb_concurrency_tickets 	500
innodb_data_file_path 	ibdata1:10M:autoextend
innodb_data_home_dir 	
innodb_doublewrite 	ON
innodb_fast_shutdown 	1
innodb_file_format 	Antelope
innodb_file_format_check 	ON
innodb_file_format_max 	Antelope
innodb_file_per_table 	ON
innodb_flush_log_at_trx_commit 	1
innodb_flush_method 	
innodb_force_load_corrupted 	OFF
innodb_force_recovery 	0
innodb_io_capacity 	200
innodb_large_prefix 	OFF
innodb_lock_wait_timeout 	50
innodb_locks_unsafe_for_binlog 	OFF
innodb_log_buffer_size 	8388608
Variable_name 	Value
innodb_log_file_size 	5242880
innodb_log_files_in_group 	2
innodb_log_group_home_dir 	./
innodb_max_dirty_pages_pct 	75
innodb_max_purge_lag 	0
innodb_mirrored_log_groups 	1
innodb_old_blocks_pct 	37
innodb_old_blocks_time 	0
innodb_open_files 	300
innodb_print_all_deadlocks 	OFF
innodb_purge_batch_size 	20
innodb_purge_threads 	0
innodb_random_read_ahead 	OFF
innodb_read_ahead_threshold 	56
innodb_read_io_threads 	4
innodb_replication_delay 	0
innodb_rollback_on_timeout 	OFF
innodb_rollback_segments 	128
innodb_spin_wait_delay 	6
innodb_stats_method 	nulls_equal
innodb_stats_on_metadata 	ON
innodb_stats_sample_pages 	8
innodb_strict_mode 	OFF
innodb_support_xa 	ON
innodb_sync_spin_loops 	30
innodb_table_locks 	ON
innodb_thread_concurrency 	0
innodb_thread_sleep_delay 	10000
innodb_use_native_aio 	OFF
innodb_use_sys_malloc 	ON
innodb_version 	5.5.30
innodb_write_io_threads 	4
insert_id 	0
interactive_timeout 	28800
join_buffer_size 	131072
keep_files_on_create 	OFF
key_buffer_size 	8388608
key_cache_age_threshold 	300
key_cache_block_size 	1024
key_cache_division_limit 	100
large_files_support 	ON
large_page_size 	0
large_pages 	OFF
last_insert_id 	0
lc_messages 	en_US
lc_messages_dir 	/usr/share/mysql/
lc_time_names 	en_US
license 	GPL
local_infile 	ON
lock_wait_timeout 	31536000
locked_in_memory 	OFF
log 	OFF
log_bin 	OFF
log_bin_trust_function_creators 	OFF
log_error 	
log_output 	FILE
log_queries_not_using_indexes 	OFF
log_slave_updates 	OFF
log_slow_queries 	OFF
log_warnings 	1
long_query_time 	10.000000
low_priority_updates 	OFF
lower_case_file_system 	OFF
lower_case_table_names 	0
max_allowed_packet 	1048576
max_binlog_cache_size 	18446744073709547520
max_binlog_size 	1073741824
max_binlog_stmt_cache_size 	18446744073709547520
max_connect_errors 	10
max_connections 	151
max_delayed_threads 	20
max_error_count 	64
max_heap_table_size 	16777216
max_insert_delayed_threads 	20
max_join_size 	18446744073709551615
max_length_for_sort_data 	1024
max_long_data_size 	1048576
max_prepared_stmt_count 	16382
max_relay_log_size 	0
max_seeks_for_key 	4294967295
max_sort_length 	1024
max_sp_recursion_depth 	0
max_tmp_tables 	32
max_user_connections 	0
max_write_lock_count 	4294967295
metadata_locks_cache_size 	1024
min_examined_row_limit 	0
multi_range_count 	256
myisam_data_pointer_size 	6
myisam_max_sort_file_size 	2146435072
myisam_mmap_size 	4294967295
myisam_recover_options 	OFF
myisam_repair_threads 	1
myisam_sort_buffer_size 	8388608
myisam_stats_method 	nulls_unequal
myisam_use_mmap 	OFF
net_buffer_length 	16384
net_read_timeout 	30
net_retry_count 	10
net_write_timeout 	60
Variable_name 	Value
new 	OFF
old 	OFF
old_alter_table 	OFF
old_passwords 	OFF
open_files_limit 	1024
optimizer_prune_level 	1
optimizer_search_depth 	62
optimizer_switch 	index_merge=on,index_merge_union=on,index_merge_so...
performance_schema 	OFF
performance_schema_events_waits_history_long_size 	10000
performance_schema_events_waits_history_size 	10
performance_schema_max_cond_classes 	80
performance_schema_max_cond_instances 	1000
performance_schema_max_file_classes 	50
performance_schema_max_file_handles 	32768
performance_schema_max_file_instances 	10000
performance_schema_max_mutex_classes 	200
performance_schema_max_mutex_instances 	1000000
performance_schema_max_rwlock_classes 	30
performance_schema_max_rwlock_instances 	1000000
performance_schema_max_table_handles 	100000
performance_schema_max_table_instances 	50000
performance_schema_max_thread_classes 	50
performance_schema_max_thread_instances 	1000
pid_file 	/mysqld.pid
plugin_dir 	/usr/lib/mysql/plugin/
port 	3306
preload_buffer_size 	32768
profiling 	OFF
profiling_history_size 	15
protocol_version 	10
proxy_user 	
pseudo_slave_mode 	OFF
pseudo_thread_id 	261
query_alloc_block_size 	8192
query_cache_limit 	1048576
query_cache_min_res_unit 	4096
query_cache_size 	0
query_cache_type 	ON
query_cache_wlock_invalidate 	OFF
query_prealloc_size 	8192
rand_seed1 	0
rand_seed2 	0
range_alloc_block_size 	4096
read_buffer_size 	131072
read_only 	OFF
read_rnd_buffer_size 	262144
relay_log 	
relay_log_index 	
relay_log_info_file 	relay-log.info
relay_log_purge 	ON
relay_log_recovery 	OFF
relay_log_space_limit 	0
report_host 	
report_password 	
report_port 	3306
report_user 	
rpl_recovery_rank 	0
secure_auth 	OFF
secure_file_priv 	
server_id 	0
skip_external_locking 	ON
skip_name_resolve 	OFF
skip_networking 	OFF
skip_show_database 	OFF
slave_compressed_protocol 	OFF
slave_exec_mode 	STRICT
slave_load_tmpdir 	/tmp
slave_max_allowed_packet 	1073741824
slave_net_timeout 	3600
slave_skip_errors 	OFF
slave_transaction_retries 	10
slave_type_conversions 	
slow_launch_time 	2
slow_query_log 	OFF
slow_query_log_file 	/db/comp-athlon-ii-d14b9b-slow.log
socket 	/mysql.sock
sort_buffer_size 	2097152
sql_auto_is_null 	OFF
sql_big_selects 	ON
sql_big_tables 	OFF
sql_buffer_result 	OFF
sql_log_bin 	ON
sql_log_off 	OFF
sql_low_priority_updates 	OFF
sql_max_join_size 	18446744073709551615
sql_mode 	
sql_notes 	ON
sql_quote_show_create 	ON
sql_safe_updates 	OFF
sql_select_limit 	18446744073709551615
sql_slave_skip_counter 	0
sql_warnings 	OFF
ssl_ca 	
ssl_capath 	
ssl_cert 	
ssl_cipher 	
ssl_key 	
storage_engine 	InnoDB
stored_program_cache 	256
Variable_name 	Value
sync_binlog 	0
sync_frm 	ON
sync_master_info 	0
sync_relay_log 	0
sync_relay_log_info 	0
system_time_zone 	EET
table_definition_cache 	400
table_open_cache 	400
thread_cache_size 	0
thread_concurrency 	10
thread_handling 	one-thread-per-connection
thread_stack 	196608
time_format 	%H:%i:%s
time_zone 	SYSTEM
timed_mutexes 	OFF
timestamp 	1395560257
tmp_table_size 	16777216
tmpdir 	/tmp
transaction_alloc_block_size 	8192
transaction_prealloc_size 	4096
tx_isolation 	REPEATABLE-READ
unique_checks 	ON
updatable_views_with_limit 	YES
version 	5.5.30-alt3
version_comment 	(ALT Linux)
version_compile_machine 	i686
version_compile_os 	Linux
wait_timeout 	28800
warning_count 	0



Спасибо¸
...
Рейтинг: 0 / 0
mysql-функция выдает ошибки
    #38593966
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выбран неудачный delimiter?
...
Рейтинг: 0 / 0
mysql-функция выдает ошибки
    #38594222
mstdmstd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А не подскажете как правильно?
...
Рейтинг: 0 / 0
mysql-функция выдает ошибки
    #38594240
mstdmstd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашел в нете что лучше выбрать такой delimiter :
Код: sql
1.
DELIMITER $$


И запускаю такой скрипт :

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
DELIMITER $$
DROP FUNCTION IF EXISTS NORMALIZE_TAGS$$
CREATE FUNCTION NORMALIZE_TAGS ( title VARCHAR(512) )
RETURNS VARCHAR(512) DETERMINISTIC
BEGIN
    DECLARE result VARCHAR(512);
    SET title = REPLACE( title, ' ', ',' );
    SET result = REPLACE( title, ',,', ',' );
    WHILE (result <> title) DO 
        SET title = result;
        SET result = REPLACE( title, ',,', ',' );
    END WHILE;
    set result = concat(',',result, ',');
      if result REGEXP('^[,]+$') then 
        return null;
      end if;
    RETURN result;
END$$
DELIMITER ;


Получаю ошибку :
Код: sql
1.
 #1548 - Cannot load from mysql.proc. The table is probably corrupted 



Открываю в системной базе mysql.proc и вижу несколько строк с тестовой базы http://s020.radikal.ru/i718/1403/e5/378f20ffde46.png

Непонятно почему ошибка?
в phnpmyadmin я работаю под root-ом Проблем в доступом быть не может.
...
Рейтинг: 0 / 0
mysql-функция выдает ошибки
    #38594389
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Цитата с консоли:
Код: 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.
mysql> DELIMITER $$
mysql> DROP FUNCTION IF EXISTS NORMALIZE_TAGS$$
Query OK, 0 rows affected, 1 warning (0.69 sec)

mysql> CREATE FUNCTION NORMALIZE_TAGS ( title VARCHAR(512) )
    -> RETURNS VARCHAR(512) DETERMINISTIC
    -> BEGIN
    ->     DECLARE result VARCHAR(512);
    ->     SET title = REPLACE( title, ' ', ',' );
    ->     SET result = REPLACE( title, ',,', ',' );
    ->     WHILE (result <> title) DO
    ->         SET title = result;
    ->         SET result = REPLACE( title, ',,', ',' );
    ->     END WHILE;
    ->     set result = concat(',',result, ',');
    ->       if result REGEXP('^[,]+$') then
    ->         return null;
    ->       end if;
    ->     RETURN result;
    -> END$$
Query OK, 0 rows affected (0.15 sec)

mysql> DELIMITER ;
mysql> select NORMALIZE_TAGS('aaa bbb,ccc');
+-------------------------------+
| NORMALIZE_TAGS('aaa bbb,ccc') |
+-------------------------------+
| ,aaa,bbb,ccc,                 |
+-------------------------------+
1 row in set (0.08 sec)


Код - правильный. Претензии - к phpmyadmin.
...
Рейтинг: 0 / 0
mysql-функция выдает ошибки
    #38594709
mstdmstd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
mysql> DELIMITER $$
mysql>  DROP FUNCTION IF EXISTS NORMALIZE_TAGS$$
Query OK, 0 rows affected, 1 warning (0,00 sec)


mysql> select dev_favsync
    -> CREATE FUNCTION NORMALIZE_TAGS ( title VARCHAR(512) )
    -> RETURNS VARCHAR(512) DETERMINISTIC
    -> BEGIN
    ->     DECLARE result VARCHAR(512);
    ->     SET title = REPLACE( title, ' ', ',' );
    ->     SET result = REPLACE( title, ',,', ',' );
    ->     WHILE (result <> title) DO 
    ->         SET title = result;
    ->         SET result = REPLACE( title, ',,', ',' );
    ->     END WHILE;
    ->     set result = concat(',',result, ',');
    ->       if result REGEXP('^[,]+$') then 
    ->         return null;
    ->       end if;
    ->     RETURN result;
    -> END$$
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE FUNCTION NORMALIZE_TAGS ( title VARCHAR(512) )
RETURNS VARCHAR(512) DETER' at line 2
mysql> 



А почему у меня ошибка? Неправильные настройки?
...
Рейтинг: 0 / 0
mysql-функция выдает ошибки
    #38594712
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mstdmstd
Код: sql
1.
2.
mysql> select dev_favsync
    -> CREATE FUNCTION NORMALIZE_TAGS ( title VARCHAR(512) )

Это что?
...
Рейтинг: 0 / 0
mysql-функция выдает ошибки
    #38594761
mstdmstd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а может ли причина быть в одном из параметров SHOW VARIABLES ?
...
Рейтинг: 0 / 0
mysql-функция выдает ошибки
    #38594785
mstdmstd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftmstdmstd
Код: sql
1.
2.
mysql> select dev_favsync
    -> CREATE FUNCTION NORMALIZE_TAGS ( title VARCHAR(512) )

Это что?
Ну скопировал через буфер обмена и выполнил нажатием Enter
Потом скопировал код функции и нажав ентер получил ошибку
...
Рейтинг: 0 / 0
mysql-функция выдает ошибки
    #38594790
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mstdmstdmiksoftпропущено...
Это что?
Ну скопировал через буфер обмена и выполнил нажатием Enter
Потом скопировал код функции и нажав ентер получил ошибкуОшибочно скопировали в консоль - я еще могу понять. Но почему не скопировать еще раз правильно, вместо того, чтобы результат явно ошибочного запроса публиковать на форуме - не понимаю.
...
Рейтинг: 0 / 0
mysql-функция выдает ошибки
    #38594798
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mstdmstdа может ли причина быть в одном из параметров SHOW VARIABLES ?нет. Причина - в вопиющей невнимательности.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / mysql-функция выдает ошибки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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