Я пытаюсь выполнить запрос, который я первым напечатал, как это:же запрос, отличный результат
DELIMITER $$
DROP PROCEDURE IF EXISTS development $$
CREATE PROCEDURE development()
BEGIN
DECLARE i INT DEFAULT 1;
WHILE i <= 500 DO
IF NOT EXISTS ((SELECT * FROM customers WHERE customerID = 500)) THEN INSERT INTO customers (firstName) VALUES (''); END IF;
SET i = i + 1;
END WHILE;
END $$
CALL development() $$
DROP PROCEDURE IF EXISTS development $$
DELIMITER ;
, но затем «сжатый» в этом:
DELIMITER $$ DROP PROCEDURE IF EXISTS development $$ CREATE PROCEDURE development() BEGIN DECLARE i INT DEFAULT 1; WHILE i <= 500 DO IF NOT EXISTS ((SELECT * FROM customers WHERE customerID = 500)) THEN INSERT INTO customers (firstName) VALUES (''); END IF; SET i = i + 1; END WHILE; END $$ CALL development() $$ DROP PROCEDURE IF EXISTS development $$ DELIMITER ;
на одной линии. Проблема в том, что первый (многострочный) код работает и делает то, что он должен делать, а в другой (однострочной) версии нет. Он не терпит неудачу или бросает ошибки, он просто не вставляет строки, как многострочная версия. Почему это? Что еще более важно, как я могу сделать однострочную версию?
Заранее благодарен!
Каким образом это провал? –
@MichaelBerkowski Это не подводит, он просто не делает того, что он должен делать; то есть добавление 500 строк фиктивных клиентов. – Tice
Я подозреваю, что проблема связана с разделителями, которые идут в конце строки. Однако вы не объясните, в чем проблема, так что это всего лишь предположение. –