相关疑难解决方法(0)

Postgresql - 更改varchar列的大小

ALTER TABLE对一个非常大的表(大约3000万行)上的命令有疑问.其中一个列是a varchar(255),我想将其调整为a varchar(40).基本上,我想通过运行以下命令来更改我的列:

ALTER TABLE mytable ALTER COLUMN mycolumn TYPE varchar(40);
Run Code Online (Sandbox Code Playgroud)

如果进程很长,我没有问题,但似乎我的表在ALTER TABLE命令期间不再可读.有更聪明的方法吗?也许添加一个新列,从旧列复制值,删除旧列,最后重命名新列?

任何线索将不胜感激!提前致谢,

注意:我使用PostgreSQL 9.0.

postgresql varchar alter-table

136
推荐指数
8
解决办法
21万
查看次数

这是django中'max_length'的最大尺寸

这是我的模特:

class Position(models.Model):
    map = models.ForeignKey(Map,primary_key=True)
    #members=models.CharField(max_length=200)
    LatLng = models.CharField(max_length=40000)
    infowindow = models.CharField(max_length=40000)
Run Code Online (Sandbox Code Playgroud)

但它无法运行..

谢谢

django django-models

67
推荐指数
2
解决办法
7万
查看次数

Postgres:定义CAST失败的默认值?

是否可以定义在CAST操作失败时返回的默认值?

例如,这样:

SELECT CAST('foo' AS INTEGER)
Run Code Online (Sandbox Code Playgroud)

将返回默认值而不是抛出错误?

sql postgresql

23
推荐指数
1
解决办法
1万
查看次数

什么时候sqlite的清单输入有用吗?

sqlite使用作者称之为" Manifest Typing "的东西,这基本上意味着sqlite是动态类型的:如果你愿意,你可以在一个"int"列中存储一个varchar值.

这是一个有趣的设计决定,但每当我使用sqlite时,我就像标准的RDMS一样使用它,并将类型视为静态.实际上,在其他系统中设计数据库时,我甚至从未希望使用动态类型列.

那么,这个功能何时有用?有没有人在实践中找到了一个很好用的东西,用静态类型的列不能轻易完成?

sql sqlite static-typing dynamic-typing

16
推荐指数
1
解决办法
1056
查看次数

Ecto中的数据类型 - "类型字符变化的值太长(255)"

ERROR 22001(string_data_right_truncation):类型字符变化的值太长(255)

我理解(并假设)字符串将限制为一定数量的字符; 但是,我不确定哪种类型最适合这种情况.

我应该使用什么类型的凤凰框架博客的"内容"部分?

数据将是文本段落,不能限制大小.

提前致谢.

elixir ecto phoenix-framework

16
推荐指数
1
解决办法
5870
查看次数

存储到PostgreSQL TEXT中时有最大长度吗

我有一个长度范围很大的字符串序列:从30到282420个字符。我想使用jdbc将每个字符串存储到postgres数据库中。

     String query = "INSERT INTO " + tableName + 
                       " (cbsID, ownerID, naam, soortRegio, jaar, centroidLat, centroidLon, borders) " + 
                       " VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
     PreparedStatement ps = connection.prepareStatement(query); 
     for (Marker marker: gemeenteMarkers)
     {
        Area gemeente = (Area) marker.getProperty("area");
        String sloc = "";

        // ... do some computations
        // Compute sloc, a string that may contain over 250.000 characters
        ps.setInt (1, gemeente.getAreaId ());
        ps.setInt (2, gemeente.getParentId ());
        ps.setString (3, gemeente.getAreaName ());
        ps.setString (4, "GM"); …
Run Code Online (Sandbox Code Playgroud)

postgresql jdbc

8
推荐指数
1
解决办法
1万
查看次数

使用Hibernate发出持久的长字符串问题

在我的Web应用程序中,我有一个文本区域,其用户填充的内容最终通过Hibernate持久保存到db.我遇到了一个问题,当用户输入超过一定长度时,持久性就会失败.有没有办法通过Hibernate Annotations或在配置中指出这个特定字段应该支持更长的字符串,并且数据库列类型应该反映这一点?

这是我得到的例外情况:

Caused by: java.sql.BatchUpdateException: Data truncation: Data too long for column 'introText' at row 1
    at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:2007)
    at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1443)
    at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
    at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
    ... 41 more
Run Code Online (Sandbox Code Playgroud)

annotations hibernate hibernate-annotations

7
推荐指数
2
解决办法
2万
查看次数

使用 varchar 而不是 text 数据类型有什么好处?

我正在 PostgreSQL 上创建一个表,我知道该文件是 char 数据类型,但尽管我知道它最多可以存储 100 个字符,但我想知道下一个:

字符或字符变化而不是文本的优点是什么?

我认为我知道的

如果我没记错字符是固定长度保留在内存中,而varchar是可变的,与Text数据类型相同。最后一个能够存储 1 GB 的数据,但最小为 0 kb,与 varchar 和 char 的最小值相同。

假设案例

然后,猜猜我很懒,尽管我知道最多我将存储 100 个字符,但我使用文本,因为如果将来需要,它可以存储这 100 个字符甚至更多。我在这里失去了哪些特征而不使用适当的数据类型?

postgresql sqldatatypes

6
推荐指数
1
解决办法
1万
查看次数

如何在postgresql中使用hash方法创建主键

有没有办法使用哈希方法创建主键?以下两个陈述都不起作用:

oid char(30) primary key using hash

primary key(oid) using hash
Run Code Online (Sandbox Code Playgroud)

postgresql hash

5
推荐指数
1
解决办法
5501
查看次数

查询之间的列数或其类型不同

在 Debian Jessie 64 上使用 PostgreSQL 9.4.3。

问题.sql:

\set client_min_messages = debug

BEGIN;

SELECT * from no_plan();

SELECT Dugong.Users_Add('Sarit','thisispassword','programmer');
SELECT is(Dugong.Users_isExist('Sarit'),'t', 'Test Question_isExist() should return true' );
PREPARE A AS SELECT Username, Password, Privilege FROM Dugong.Users;

SELECT results_eq('A',$$VALUES ('sarit','thisispassword','programmer') $$,'Test wtf');
SELECT results_eq('A',$$VALUES ('Sarit','thisispassword','programmer') $$,'Test wtf');

SELECT * FROM finish();
ROLLBACK;
Run Code Online (Sandbox Code Playgroud)

输出:

postgres@jaikra:/home/sarit/4alls/anemonesfish/pgtap$ pg_prove -v -d skorplusdb question.sql
question.sql .. 
Sarit
ok 1 - Test Question_isExist() should return true
not ok 2 - Test wtf
# Failed test 2: "Test …
Run Code Online (Sandbox Code Playgroud)

postgresql pgtap

3
推荐指数
1
解决办法
490
查看次数