'daki Redshift kimlik sütunlarını işleme SQLAlchemy'ı Redshift'e bağlamak için redshift-sqlalchemy paketini kullanıyorum.SQLAlchemy
create table if not exists companies (
id bigint identity primary key,
name varchar(1024) not null
);
Öyle gibi eşlenen SQLAlchemy tarafında: Redshift ben tablo basit bir "şirketleri" var
Base = declarative_base()
class Company(Base):
__tablename__ = 'companies'
id = Column(BigInteger, primary_key=True)
name = Column(String)
Bir şirketi oluşturmayı denerseniz:
company = Company(name = 'Acme')
session.add(company)
session.commit()
sonra bu hatayı alıyorum:
Sorun şu ki, SQLAlchemy otomatik bir artış dizisi beklemektedir - Postgres ve diğer geleneksel DB'ler ile standart bir teknik. Fakat Redshift'in dizileri yoktur, bunun yerine otomatik olarak oluşturulmuş benzersiz değerler (zorunlu olarak değil) için "kimlik sütunları" sunar. Bu işin nasıl yapıldığına dair herhangi bir tavsiye var mı? Net olmak gerekirse, otomatik artırmayı umursamıyorum, sadece benzersiz birincil anahtar değerlere ihtiyacınız var. olacak, senin tabloda
INSERT INTO companies
(name)
VALUES
('Acme')
: basitçe olmalıdır
select nextval(\'"companies_id_seq"\')
Ve ekleme deyimini:
İlgili tartışma burada
http://docs.aws.amazon.com/redshift/latest/dg/c_Examples_of_INSERT_30.html
: https://github.com/binarydud/redshift_sqlalchemy/issues/24 bir düzeltme Talepleri, ancak bir düzeltme olduğunu bana görünen İlgili ama farklı bir hata, yani tablo oluşturma, ORM üzerinden yeni bir giriş eklemek yerine, –