SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 07.03.2023 10:19:41

revin_ii
Участник
Зарегистрирован: 07.03.2023
Сообщений: 7

Необходимо исправление процедуры

Процедура sp_saveEditTicket:
https://github.com/Igor-99/my/blob/master/2.png

BEGIN
UPDATE ticket_data t
SET t.status_id = stat,t.phoneNumber = phone,t.fullName = name,t.device = device,t.model = model,t.defect = defect,t.note = note,t.condition = condi,t.comment = commen,t.numberTicket = numberTicket,t.dateCloseTicket = dat,t.repairPrice = repairprice
WHERE t.idTicket = id;
END


Запуск процедуры:
CALL sp_saveEditTicket (2197,1,'80000000305','Степанов Игорь Григорьевич','Сотовый телефон', 'JSN L22','не включается, не заряжается','test','test 1','test',2477,'2023-03-07',10);END


Связанные ошибки:
Warning: #1366 Incorrect integer value: 'test' for column 'numberTicket' at row 1
Warning: #1265 Data truncated for column 'dat' at row 1
Warning: #1265 Data truncated for column 'repairprice' at row 1

Просьба помочь исправить ошибки.

Структура таблицы ticket_data:
https://github.com/Igor-99/my/blob/master/1.png

Неактивен

 

#2 07.03.2023 13:28:09

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2421

Re: Необходимо исправление процедуры

Вы не привели полный текст процедуры, что осложняет анализ. Но в любом случае - явно передаёте параметры не в должном порядке.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 07.03.2023 14:28:39

revin_ii
Участник
Зарегистрирован: 07.03.2023
Сообщений: 7

Re: Необходимо исправление процедуры

Что значит не в полный текст? Как передать полный создаю и просматриваю процедуру в phpAdmin

Неактивен

 

#4 07.03.2023 18:24:26

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2421

Re: Необходимо исправление процедуры

Покажите

SELECT body FROM mysql.proc WHERE db = 'yourdb' AND name = 'sp_saveEditTicket ' ;


и результат запроса

show create table ticket_data


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#5 07.03.2023 18:32:30

revin_ii
Участник
Зарегистрирован: 07.03.2023
Сообщений: 7

Re: Необходимо исправление процедуры

#1142 - Команда SELECT запрещена пользователю 'h48055_root'@'localhost' для таблицы 'proc'



show create table ticket_data;



Table
Create Table
ticket_data
CREATE TABLE `ticket_data` (
  `idTicket` bigint NOT NULL AUTO_INCREMENT,
  `status_id` int NOT NULL,
  `phoneNumber` bigint NOT NULL,
  `fullName` text NOT NULL,
  `dateCreateTicket` date DEFAULT NULL,
  `dateCloseTicket` date DEFAULT NULL,
  `device` text,
  `model` text,
  `defect` text,
  `note` text,
  `condition` text,
  `comment` text,
  `repairPrice` bigint NOT NULL,
  `numberTicket` bigint DEFAULT NULL,
  PRIMARY KEY (`idTicket`),
  KEY `status_id` (`idTicket`,`status_id`),
  FULLTEXT KEY `fullName` (`fullName`)
) ENGINE=InnoDB AUTO_INCREMENT=2198 DEFAULT CHARSET=utf8mb3

Неактивен

 

#6 07.03.2023 18:36:17

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2421

Re: Необходимо исправление процедуры

Уже лучше.

Но - Вы вызываете процедуру

CALL sp_saveEditTicket (2197,1,'80000000305','Степанов Игорь Григорьевич','Сотовый телефон', 'JSN L22','не включается, не заряжается','test','test 1','test',2477,'2023-03-07',10);

не видно то, как обрабатываются этим параметры. проверьте, например, что параметр 'test', который Вы передаёте при вызове процедуры - что вы его присваиваете строчному параметру. судя по ошибку вы пытаетесь int'овой колонке присвоить строку.

>#1142 - Команда SELECT запрещена пользователю 'h48055_root'@'localhost' для таблицы 'proc'

Запустите под пользователем root (если у Вас есть его пароль)


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#7 07.03.2023 20:49:47

revin_ii
Участник
Зарегистрирован: 07.03.2023
Сообщений: 7

Re: Необходимо исправление процедуры

права root отсутствуют

UPDATE ticket_data t
SET t.status_id = stat,t.phoneNumber = phone,t.fullName = name,t.device = device,t.model = model,t.defect = defect,t.note = note,t.condition = condi,t.comment = commen,t.numberTicket = numberTicket,t.dateCloseTicket = dat,t.repairPrice = repairprice
WHERE t.idTicket = id;


Вот же вся процедура

Неактивен

 

#8 07.03.2023 20:55:25

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2421

Re: Необходимо исправление процедуры

Я понимаю, что это вся процедура, но порядок параметров - непонятно же каким по счету пришёл stat, а каким phone.

Здесь
CALL sp_saveEditTicket (2197,1,'80000000305','Степанов Игорь Григорьевич','Сотовый телефон', 'JSN L22','не включается, не заряжается','test','test 1','test',2477,'2023-03-07',10);

видно, какие параметры приходят, а как они внутри функции обрабатываются - не видно.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#9 08.03.2023 07:08:18

revin_ii
Участник
Зарегистрирован: 07.03.2023
Сообщений: 7

Re: Необходимо исправление процедуры

можно пересоздать процедуру указав в каком порядке принимать данные?

Неактивен

 

#10 08.03.2023 08:45:08

revin_ii
Участник
Зарегистрирован: 07.03.2023
Сообщений: 7

Re: Необходимо исправление процедуры

deadka написал:

Я понимаю, что это вся процедура, но порядок параметров - непонятно же каким по счету пришёл stat, а каким phone.

Здесь
CALL sp_saveEditTicket (2197,1,'80000000305','Степанов Игорь Григорьевич','Сотовый телефон', 'JSN L22','не включается, не заряжается','test','test 1','test',2477,'2023-03-07',10);

видно, какие параметры приходят, а как они внутри функции обрабатываются - не видно.

Попробовал таким образом вывести процедуру: show create procedure sp_saveEditTicket; файл во вложении
так как такой таблицы в базе mysql, не существует - mysql.proc


Прикрепленные файлы:
Attachment Icon 2.png, Размер: 49,110 байт, Скачано: 103

Неактивен

 

#11 08.03.2023 15:12:20

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2421

Re: Необходимо исправление процедуры

Ну вот, вторым параметром в процедуру у Вас должен приходить phone, а передаёте 1 вместо. phone '800000305' отправляете третьим параметром.
Передавайте параметры дОлжным порядком и будет щастье. много много щастья ( с ).


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#12 09.03.2023 10:17:20

revin_ii
Участник
Зарегистрирован: 07.03.2023
Сообщений: 7

Re: Необходимо исправление процедуры

Спасибо! Исправил все работает корректно.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson