首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python/Django:使用cql引擎创建带有两个primary_key的表

Python/Django:使用cql引擎创建带有两个primary_key的表
EN

Stack Overflow用户
提问于 2013-07-12 17:28:06
回答 2查看 2.2K关注 0票数 2

我希望通过它的django模型创建一个包含两个primary_key的表,如下所示:

代码语言:javascript
复制
class UserView(Model):
    email= columns.Text(primary_key=True)
    entryLink= columns.Text(primary_key=True)
    date= columns.Date(default=datetime.date.today())

但是,当我想要创建如下表时:

代码语言:javascript
复制
>>> from cqlengine import connection
>>> from cqlengine.management import create_table
>>> from MainAPP.models import UserView
>>> connection.setup(['127.0.0.1:9160'])
>>> create_table(UserView)

我看到这个错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "H:\Web-Programming\Python\Project\Prexter\Virtual-Environment\Lib\site-packages\cqlengine\management.py", line 97, in create_table
execute(qs)
  File "H:\Web-Programming\Python\Project\Prexter\Virtual-Environment\Lib\site-packages\cqlengine\connection.py", line 172, in execute
return connection_pool.execute(query, params)
  File "H:\Web-Programming\Python\Project\Prexter\Virtual-Environment\Lib\site-packages\cqlengine\connection.py", line 164, in execute
    raise CQLEngineException(unicode(ex))
CQLEngineException: Bad Request: Missing CLUSTERING ORDER for column entryLink

当我从primary_key字段中删除entryLink属性时,没有错误!但是我想把entryLink定义为primary_key!我犯了什么错?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-12 17:43:38

数据库表不能有2个主键。如果您正在寻找复合主键,Django还不支持这一点

现在,您可能需要的是unique=True (候选密钥)。

代码语言:javascript
复制
class UserView(Model):
    email= columns.Text(primary_key=True)
    entryLink= columns.Text(unique=True)
    date= columns.Date(default=datetime.date.today())

您还可以阅读为了更好的理解这篇文章

票数 1
EN

Stack Overflow用户

发布于 2013-07-13 00:04:51

我找到答案了!这是个有趣的虫子!我在entryLink字段中有一个大写字符,它导致了考虑的错误!这太有趣了!因为这只适用于primary_key!其他字段也不是这样!primary_keys在!中不可能有大写字符

我修改的代码:

代码语言:javascript
复制
class UserView(Model):
    email= columns.Text(primary_key=True)
    link= columns.Text(primary_key = True)
    date= columns.Date(default=datetime.date.today())
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17620651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档