Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
MYSQL CONCAT
|
|||
|---|---|---|---|
|
#18+
Здравствуйте помогли написать процедуру по вставке данных в таблицы name1 -Это название столбцов в table_main, который выбирается автоматически из таблицы список таблица spisok; +----+-------+-------+-----------+-------+--------------+---------------+ | id | title | cena | Vreaktiva | name | table_title | typeA | +----+-------+-------+-----------+-------+--------------+---------------+ | 35 | АЛТ | 4.570 | 0.16 | alt | analiz_alt | biohim | | 36 | АСТ | 4.570 | 0.16 | act | analiz_act | biohim | | 70 | Сахар | NULL | NULL | sahar | analiz_sahar | biohim | +----+-------+-------+-----------+-------+--------------+---------------+ Таблица biohim основная. она содержит результаты алт, аст , sahar(т.е столбцы alt, act,sahar). мне нужно забрать значение alt из biohim и вставить analiz_alt. соответсвенно act,sahar. Вроде процедура работачая. Если set @ssss = concat('insert into ',table_name,'(UID,date,resultat) select UID,data ',name1,' from ',table_main,';'); меняю на set @ssss = concat('truncate ',table_name,';'); то процедура очищает в цикле все три таблицы. Если произвожу вставку set @ssss = concat('insert into ',table_name,'(UID,resultat) VALUES(2,4);'); для проверки, она нормально вставляет значения во все три таблицы analiz_act, analiz_alt и analiz_sahar. Но в последнюю таблицу вставляет почему то два значения. Как избавить от этой ошибки?(Вставки лишней записи в последнюю таблицу). И еще 1 проблема. При использований данного CONCAT сервер выдает ошибку Column count doesn't match value count at row 1/ set @ssss = concat('insert into ',table_name,'(UID,date,resultat) select UID,data ',name1,' from ',table_main,';'); не могу понять причину ошибки. Помогите плиз!!!!! Сама процедура: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2017, 18:05 |
|
||
|
MYSQL CONCAT
|
|||
|---|---|---|---|
|
#18+
Потому что FETCH следует выполнять не в начале итерационного кода, а непосредственно перед ним и в самом конце. Ибо последний FETCH приводит к ошибке, но хандлер обработает ошибку и продолжит выполнение кода. А т.к. новые данные не пришли - повторно вставятся предыдущие. И только по завершении этого круга в начале следующего проверится условие и цикл завершится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 18:52 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39479928&tid=1830570]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
| others: | 14ms |
| total: | 145ms |

| 0 / 0 |
