我正在尝试将序列设置为特定值.
SELECT setval('payments_id_seq'), 21, true
Run Code Online (Sandbox Code Playgroud)
这给出了一个错误:
ERROR: function setval(unknown) does not exist
使用ALTER SEQUENCE似乎也不起作用?
ALTER SEQUENCE payments_id_seq LASTVALUE 22
Run Code Online (Sandbox Code Playgroud)
如何才能做到这一点?
参考:https://www.postgresql.org/docs/current/static/functions-sequence.html
关于我之前问过的一个问题,我正在跟进,我试图寻求从一个愚蠢/写得不好的mysql查询到postgresql的转换.我相信我成功了.无论如何,我正在使用手动从mysql数据库移动到postgres数据库的数据.我正在使用看起来像这样的查询:
"""
UPDATE krypdos_coderound cru
set is_correct = case
when t.kv_values1 = t.kv_values2 then True
else False
end
from
(select cr.id,
array_agg(
case when kv1.code_round_id = cr.id
then kv1.option_id
else null end
) as kv_values1,
array_agg(
case when kv2.code_round_id = cr_m.id
then kv2.option_id
else null end
) as kv_values2
from krypdos_coderound cr
join krypdos_value kv1 on kv1.code_round_id = cr.id
join krypdos_coderound cr_m
on cr_m.object_id=cr.object_id
and cr_m.content_type_id =cr.content_type_id
join krypdos_value kv2 on kv2.code_round_id = cr_m.id
WHERE
cr.is_master= …Run Code Online (Sandbox Code Playgroud) django postgresql database-integrity duplicates unique-constraint
我正试图从中迁移Django 1.6到Django 1.8.我South用于管理migrationsDjango 1.6.我已经成功创建了新的迁移文件python manage.py makemigrations.在运行时python manage.py migrate --fake-initial,我收到此错误
Traceback (most recent call last):
File "manage.py", line 39, in <module>
execute_from_command_line(sys.argv)
File "/home/jonty/.virtualenvs/squadrun/local/lib/python2.7/site- packages/django/core/management/__init__.py", line 338, in execute_from_command_line
utility.execute()
File "/home/jonty/.virtualenvs/squadrun/local/lib/python2.7/site- packages/django/core/management/__init__.py", line 330, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/jonty/.virtualenvs/squadrun/local/lib/python2.7/site-packages/django/core/management/base.py", line 390, in run_from_argv
self.execute(*args, **cmd_options)
File "/home/jonty/.virtualenvs/squadrun/local/lib/python2.7/site-packages/django/core/management/base.py", line 441, in execute
output = self.handle(*args, **options)
File "/home/jonty/.virtualenvs/squadrun/local/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 225, in handle
emit_post_migrate_signal(created_models, self.verbosity, self.interactive, connection.alias)
File "/home/jonty/.virtualenvs/squadrun/local/lib/python2.7/site-packages/django/core/management/sql.py", line …Run Code Online (Sandbox Code Playgroud) 使用Postgres,我试图AUTO_INCREMENT在SQL中自动编号我的主键.但是,它给了我一个错误.
CREATE TABLE Staff (
ID INTEGER NOT NULL AUTO_INCREMENT,
Name VARCHAR(40) NOT NULL,
PRIMARY KEY (ID)
);
Run Code Online (Sandbox Code Playgroud)
错误:
Run Code Online (Sandbox Code Playgroud)********** Error ********** ERROR: syntax error at or near "AUTO_INCREMENT" SQL state: 42601 Character: 63
知道为什么吗?
我在Heroku上使用Postgres,我需要从生产数据库中转储一个表并将其转储到我的暂存数据库中.我安装了heroku工具带,但不知道如何转储单个db表以导入到我的staging db中.
我遇到了ManytoMany关系的问题,当我保存它时(通过管理员)并没有在模型中更新,并尝试在附加到post_save信号的函数中或在save_model关联的函数内使用新值AdminModel.我试图通过使用带有id的get函数重新加载这些函数中的对象但它仍然具有旧值.
这是交易问题吗?交易结束时是否抛出信号?
谢谢,
我有一个脚本将表数据从一个DB复制到另一个DB,但ID列由序列支持,因此当新记录插入目标表时,nextval(seq)返回错误的值.
我需要更新序列,以便从下一个可用ID开始.
我想做的事情如下:
ALTER SEQUENCE seq_id RESTART WITH
(SELECT MAX(id) FROM tbl);
Run Code Online (Sandbox Code Playgroud)
但是上面会产生语法错误.
任何人都可以提出替代方法吗?
我最近将我的rails应用程序迁移到PostgreSQL,以便利用全文搜索.
由于迁移与迁移到新的webhost同时发生,迁移步骤如下:
应用程序正在成功运行,但在尝试向数据库添加新内容时出现问题.例如,当我运行rake任务来更新我的twitter feed时:
PG::Error: ERROR: duplicate key value violates unique constraint "twitter_feeds_pkey" DETAIL: Key (id)=(3) already exists.
Run Code Online (Sandbox Code Playgroud)
这也适用于所有其他模型,创建新文章,用户等.在开发中我可以看到发布插入语句n + 1次将成功保存记录而不会出错.
我的问题是:如何告诉PostgreSQL开始按现有数据顺序添加索引?
我已经阅读了这个REINDEX页面,但我认为这不是我正在寻找的操作.
我遇到了一个奇怪的问题,我希望这里的某些人能够对此有所了解.
我正在重写模型的save()方法,以便在运行super()之后向ManyToMany字段添加一些值.我的问题是,当我在Django admin中保存时,值似乎被添加到关系中,但然后再次为空.
但是,如果我这样做,manage.py shell它没有问题.
我已经在那里放了两个打印语句,无论我是通过Django admin还是通过shell运行它,它们都会产生完全相同的输出.
class Store(models.Model):
holidays = models.ManyToManyField(StoreHoliday, blank=True)
copy_holidays_from = models.ForeignKey('Store', blank=True, null=True)
def save(self):
print '==== BEFORE SAVE:', self.holidays.all()
super(Store, self).save()
self.copy_holidays()
print '==== AFTER SAVE:', self.holidays.all()
def copy_holidays(self):
if self.pk and self.copy_holidays_from:
self.holidays.clear()
for h in self.copy_holidays_from.holidays.all():
self.holidays.add( h )
Run Code Online (Sandbox Code Playgroud)
这是print声明的输出:
==== BEFORE SAVE: []
==== AFTER SAVE: [<StoreHoliday: 10 Mar 2010, Chuck Norris birthday (Closed)>]
Run Code Online (Sandbox Code Playgroud)
有没有人对可能导致这种情况的原因有任何建议?
编辑:当通过管理界面保存时,Django似乎丢弃了save()中m2m关系的所有手动更改.这与处理表单的方式有关吗?
我在Laravel应用程序中使用psql.我正在尝试创建我的用户,并且我一直收到此错误
唯一违规:7错误:重复键值违反唯一约束"users_pkey"
$user = User::where('account_id','=',$id)->first();
$user->email = $account->email_address;
$user->fb_email = '';
$user->tw_email = '';
$user->fb_access_token = '';
$user->fb_profile_id = '';
$user->fb_page_id = '';
$user->fb_username = '';
$user->save();
Run Code Online (Sandbox Code Playgroud)
CREATE TABLE "users" (
"id" serial NOT NULL ,
"account_id" varchar(255) NOT NULL ,
"email" varchar(255) NOT NULL ,
"fb_email" varchar(255) NOT NULL ,
"tw_email" varchar(255) NOT NULL ,
"created_at" timestamp(0) without time zone,
"updated_at" timestamp(0) without time zone,
"fb_access_token" varchar(255) NOT NULL ,
"fb_profile_id" varchar(255) NOT NULL ,
"fb_page_id" varchar(255) …Run Code Online (Sandbox Code Playgroud) postgresql ×7
django ×4
django-orm ×2
sql ×2
django-1.8 ×1
django-admin ×1
django-south ×1
duplicates ×1
heroku ×1
laravel ×1
laravel-5 ×1
m2m ×1
migration ×1
mysql ×1
php ×1
python ×1
sequence ×1
types ×1