mysql - 在 PostgreSQL 中运行 MySQL 查询时出错

标签 mysql database postgresql compatibility

我用标准 SQL 编写了查询,并在 MySQL 中测试了它们。

现在,当我尝试在 PostgreSQL 中运行它们时,我遇到了各种各样的错误,我并不真正理解这些错误。 这是在 MySQL 中有效的原始查询:

CREATE VIEW popularCSsections AS (
    SELECT  sect.csid, COUNT(sc.sid) as numStudents
    FROM courseSection sect, studentCourse sc, department d
    WHERE sect.csid = sc.csid 
        AND sect.dcode = d.dcode 
        AND dname = "Computer Science"
    GROUP BY sect.csid
    HAVING numStudents > 2
);

给出这个错误:

psql:a2tables:60: ERROR:  column "Computer Science" does not exist
LINE 8:   AND department.dname = "Computer Science" 
                                 ^

能否请您帮助我了解错误的性质并帮助我修复它们?


附加问题:

CREATE VIEW popularCSsections AS (
SELECT  sect.csid, COUNT(sc.sid) as numStudents
FROM courseSection sect, studentCourse sc, department d
WHERE sect.csid = sc.csid 
    AND sect.dcode = d.dcode 
    AND dname = 'Computer Science'
    GROUP BY sect.csid
    HAVING numStudents > 2
);

错误:

psql:a2tables:70: ERROR:  column "numstudents" does not exist
LINE 8:  HAVING numStudents > 2
                ^

最佳答案

您需要用单引号将字符串括起来:

 AND dname = 'Computer Science'

这里发生的事情是双引号被解释为“标识符引号”,表示您希望将内容解释为数据库标识符(列名或表名)。

关于mysql - 在 PostgreSQL 中运行 MySQL 查询时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13244294/

相关文章:

java - Hibernate 加入两个表并获取所有记录?

php - 从Mysql获取rowid

ruby-on-rails - 在 Rails 应用程序下结合 Neo4j 和 PostgreSQL

PostgreSQL 行插入带有额外返回字段的 CTE

sql-server - SQL Server 使用复制命令生成 "Text File"数据导入 postgresql

MySQL:同时进行三个进程(INSERT、SELECT、INSERT)可以吗?

java - 双向一对多 JPA org.hibernate.exception.ConstraintViolationException

mysql - 构建用户收藏夹表的正确方法是什么(性能)

php - 我应该如何在服务器上存储用户帐户文件?

php - 使用 php mysqli 或 pdo 更新数据库中的年龄列