在使用MySQL的应用程序的Rails迁移中,我具有以下代码:
execute <<-SQL
ALTER TABLE properties
ADD name VARCHAR(255) NOT NULL;
ALTER TABLE properties
ADD CONSTRAINT fk_properties_name
FOREIGN KEY (name)
REFERENCES valid_property_names (property_name);
SQL
运行迁移时,出现以下错误:
Mysql2::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ALTER TABLE properties
为什么会出现此错误,我该如何解决?
这里的问题是,当同一执行块中有多个SQL命令时,Rails Mysql2数据库适配器就会阻塞。以下将正常运行:
execute <<-SQL
ALTER TABLE properties
ADD name VARCHAR(255) NOT NULL;
SQL
execute <<-SQL
ALTER TABLE properties
ADD CONSTRAINT fk_properties_name
FOREIGN KEY (name)
REFERENCES valid_property_names (property_name);
SQL
如果您是将PostgreSQL与Rails一起使用,则此行为可能会使您感到困惑,因为Postgres适配器没有相同的限制。
问题内容: 我想在 Java中 执行查询。 我创建一个连接。然后,我想执行一条语句,完成后关闭连接,但是我想通过连接执行一些插入语句,并在循环完成后关闭连接。 我能做些什么 ? 我的示例代码是: 当执行select语句()时,循环必须为两次,但是当()执行并完成时,则关闭连接并从类中返回。 问题答案: 以下示例使用&命令同时执行多个SQL命令。 结果: 以上代码示例将产生以下结果。结果可能会有所不
我想知道是否可以在一个准备好的语句中执行多个SQL查询。这是我要执行的第一个查询:
问题内容: 说我想做,如何在同一个mysql_query()中做它们? 编辑: 由于这个问题有很多看法,我想指出,自PHP 5.5起,其他功能现在已被弃用,不应使用。 问题答案: 我从来没有尝试过,但是我认为您可以使用mysqli :: multi_query 。拒绝多条语句的好处之一是,它可以立即排除一些更常见的SQL注入攻击,例如添加一条语句。因此,您可能需要注意多个语句。
问题内容: 大家好,我想执行我的SQL语句,但是我在synatx上遇到麻烦,有人可以帮助我了解我做错了什么吗? 谢谢,阿什。 问题答案: 您需要解决的最重要的事情是使用查询参数,而不是动态地构建字符串。这将提高性能,维护和安全性。 此外,您想使用较新的强类型ADO.Net对象。确保为添加使用指令。 注意此代码中的语句。完成连接后,他们将 确保 您的连接已关闭。这很重要,因为数据库连接是有限且不受管
我的目标是:我需要从表1中检索name2),但是我还需要检索具有相同名字的人的状态(在本例中是statusY)。注意,对于name2的检索,我不能依赖于json对象的索引(name2可能是json对象的第一个键)。 到目前为止,我将如何做到这一点:A)在第一个查询中从表1中获取name2),对其进行清理,以及B)在第二个查询中使用它,然后正确地检索状态 语句A)和B)都是参数化的准备好的sql语句
如题,我知道mybatis可以输出sql语句,但它输出的不是最终的sql语句,而是使用占位符的语句,我想知道mysql最终执行的sql语句,这样也方便排错,有办法可以记录mysql执行的sql语句吗?