我在 Spring Boot 应用程序中使用schema.sql文件到CREATE/DROP表,它工作正常。
但是当我添加了更改表的程序时:
DELIMITER $$
CREATE PROCEDURE Alter_Table()
BEGIN
IF NOT EXISTS( SELECT NULL
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'test_table'
AND table_schema = 'test'
AND column_name = 'cc_test_id') THEN
alter table test_table add cc_test_id VARCHAR(128) NOT NULL;
END IF;
END $$
call Alter_Table;
Run Code Online (Sandbox Code Playgroud)
我收到了:
Run Code Online (Sandbox Code Playgroud)com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException exception.
但是,在 MySQL 工作台中执行此过程并成功完成。
那么,有人应该知道这个问题的原因是什么,让我知道吗?
我有一个与Stackoverflow 帖子类似的问题。
\n如何从数据库中的 SQL 查询创建持久表(我使用 DB2 数据库)?我的目标是使用一种模式中的表,并在另一种模式中永久创建或多或少修改过的表。
\n到目前为止,有效的方法是将数据提取到R并随后在不同的模式中创建一个表:
dplyr::tbl(con, in_schema("SCHEMA_A", "TABLE")) %>%\ncollect() %>% \nDBI::dbWriteTable(con, Id(schema = "SCHEMA_B", table = "NEW_TABLE"), ., overwrite = TRUE)\nRun Code Online (Sandbox Code Playgroud)\n但是,我想将该compute()函数合并到dplyr管道中,这样我就不必将数据提取到 R 中,也就是说,我想将数据保留在数据库中。作为旁注:我不知道如何用 \'s 替换\ DBI' s \xe2\x80\x93 能够做到这一点也会对我有所帮助。dbWriteTable()dplyrcopy_to()
?compute()不幸的是,即使在阅读及其在线文档之后,我也无法使其工作。以下代码框架不起作用并导致错误:
dplyr::tbl(con, in_schema("SCHEMA_A", "TABLE")) %>%\ndplyr::compute(in_schema("SCHEMA_B", "NEW_TABLE"), analyze = FALSE, temporary = FALSE)\nRun Code Online (Sandbox Code Playgroud)\n是否有使用解决方案compute()或适用于 dplyr 管道的其他解决方案?