嗨,我似乎无法在 postgreSQL 中按照我期望的方式工作。在 pgadmin 中,我执行以下 SQL 查询。
-- Check: "TypeCheck"
-- ALTER TABLE "ComLog" DROP CONSTRAINT "TypeCheck";
ALTER TABLE "ComLog"
ADD CONSTRAINT "TypeCheck" CHECK ("Type" SIMILAR TO 'email|post|IRL|minutes');
COMMENT ON CONSTRAINT "TypeCheck" ON "ComLog" IS 'One of email|post|IRL|minutes';
Run Code Online (Sandbox Code Playgroud)
执行时将转换为。
-- Check: "TypeCheck"
-- ALTER TABLE "ComLog" DROP CONSTRAINT "TypeCheck";
ALTER TABLE "ComLog"
ADD CONSTRAINT "TypeCheck" CHECK ("Type" ~ similar_escape('email|post|IRL|minutes'::text, NULL::text));
COMMENT ON CONSTRAINT "TypeCheck" ON "ComLog" IS 'One of email|post|IRL|minutes';
Run Code Online (Sandbox Code Playgroud)
我希望这会将我对 Types 列的输入限制为电子邮件帖子 IRL 或分钟之一。但是,当输入表数据时,当我输入这些类型之一时,此约束会失败。Types 列是字符类型。有谁知道如何解决这一问题。谢谢。
嗨,我正在尝试创建一个登录角色(用户),其修改数据库的能力相当小。他们应该能够选择、删除、创建触发器、插入和更新。然后,我希望拥有多个作为用户成员的帐户,因此它们具有相同的权限,但我可以为单个用户记录编辑。
我在数据库设计中使用 pgadmin,我的程序使用 QtSQL 访问它。
尝试选择一些数据作为测试时,Qt 捕获了我收到的错误消息。当我运行与数据库所有者和超级用户相同的代码时,我没有问题。
bool run_query(const QString & q){
QSqlDatabase db = QSqlDatabase::database("default");
QSqlQuery query(db);
query.exec(q);
if (!query.isActive()){
QMessageBox::warning(0, QObject::tr("Database Error"),
query.lastError().text());
return false;
}
while (query.next()){
QString title = query.value(0).toString();
std::cerr << qPrintable(title) << std::endl;
}
return true;
}
run_query("Select forename from contacts;");
Run Code Online (Sandbox Code Playgroud)
错误:关系联系人的权限被拒绝 QPSQL:无法创建查询
到目前为止,我已经创建了角色(用户)。
-- Role: user
-- DROP ROLE "user";
CREATE ROLE "user" LOGIN
ENCRYPTED PASSWORD 'md54d45974e13472b5a0be3533de4666414'
NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
COMMENT ON ROLE "user" IS 'Low level user';
Run Code Online (Sandbox Code Playgroud)
因为这给了以前的问题。我尝试为数据库添加公共权限,但这也不起作用。
现在我不知道去哪里寻找解决方案。任何帮助深表感谢。谢谢。
嗨,我是数据库设计的新手,但我正在努力确保我第一次就把事情做好,以免养成坏习惯。我的问题是我有一组我想记录映射到重要性的需求的人。应该从一组需求中提取需求,以避免重复出现。每个人都会选择这些需求的一个子集并对其重要性进行评分。即需要 =[茶、饼干、厕所设施、互联网接入] 人 = [Phil, Bryan]
菲尔需要茶和饼干,茶的重要性为 10 饼干,重要性为 3。
Bryan 需要互联网接入和饼干,重要性分别为 4 和 7。
您建议如何组织表格来实现这一点。谢谢