如何解决创建过程以在MySQL中删除新行
大家好。
我创建了一个过程来创建句子,以从数据库中删除所有表的列中的字符\n
。
当我调用引入数据库的过程时,它会运行,但是并没有指示\n
(实际上,它给您换行符,而我不喜欢换行符)
代码是这样的:
DELIMITER //
CREATE PROCEDURE `p_corregir_saltos_de_linea_mysql` (IN v_bbdd VARCHAR(800))
BEGIN
SET SESSION group_concat_max_len = 1000000;
SELECT CONCAT('UPDATE `',TABLE_SCHEMA,'`.`',TABLE_NAME,'` SET `',COLUMN_NAME,'` = REPLACE(`','`,''\n'','''');')
FROM `information_schema`.`COLUMNS`
WHERE `TABLE_NAME` IN (SELECT `TABLE_NAME` FROM `information_schema`.`TABLES` WHERE `TABLE_TYPE` = 'BASE TABLE')
AND `TABLE_SCHEMA` = v_bbdd
AND `COLUMN_TYPE` LIKE 'varchar%';
END //
DELIMITER ;
我需要在程序中进行哪些更改?
解决方法
该过程仅返回如下SQL代码:
UPDATE `database_name`.`table_name` SET `column_name` = REPLACE(`column_name`,'
','');
由您自己决定随后运行代码。但是,根据运行方式的不同,您可能会发现您的工具将其原始Unix换行符替换为其默认换行符。生成转义序列会更健壮。为此,您需要一个额外的反斜杠层:
SELECT CONCAT(…'` SET `',COLUMN_NAME,'` = REPLACE(`','`,''\\n'','''');')
-- ^ One more
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。