SQL:从现有列插入并更新新列

2024-09-30 08:23:02 发布

您现在位置:Python中文网/ 问答频道 /正文

Query matching string tags

SQL:从现有列插入并更新新列

我想在PostGRESQL数据中插入一个新列,从现有列进行解析。在

我有一个字符串http://google.com/sadfasdfsd&AA=mytag&SS=sdfsdf,它正在URL列中更新。那么如何在这个数据库中插入一个名为AAtag的新列。我将使用Python解析字符串。请帮助我编写以下任务的查询:


查询1。在此表中插入一个新列AAtag。在

ALTER TABLE table_name
ADD AAtag varchar

对吗?AAtag是否需要引用?在


问题2。在我从列URL(假设我有Pyton list中的标记列表)运行解析脚本之后,我想填充AAtag列。在

^{pr2}$

Tags: 数据字符串comhttpurlsqlstringpostgresql
1条回答
网友
1楼 · 发布于 2024-09-30 08:23:02

查询1:不,不需要引用AATag。然而,如果它没有被引用,它将被迫小写。此外,引号对名称使用双引号,而不是对文字使用单引号。所以,如果你没有引用这句话,你会看到:

create table table_name (URL text);
alter table table_name add AATag varchar;

nsp=# \d table_name
       Table "public.table_name"
 Column |       Type        | Modifiers
    +         -+     -
 url    | text              |
 aatag  | character varying |

问题2:

^{pr2}$

你的例子也会因为同样的原因而起作用,这些列都是不加引号的,所以会是小写的。如果你真的想把所有的东西混合起来,你会:

create table table_name ("URL" text);
alter table table_name add "AATag" varchar;

nsp=# \d table_name
       Table "public.table_name"
 Column |       Type        | Modifiers
    +         -+     -
 URL    | text              |
 AATag  | character varying |

nsp=# update table_name set "AATag" = '{0!f}' where "URL" = '{0!s}';
UPDATE 0

我想我误读了这个问题。您是在问如何用sql编写查询以更改数据库的结构,还是如何用python编写查询?后者是另一个主题。基本上,你会:

import psycopg2
import psycopg2.extras
pg_conn = psycopg2.connect("dbname=dbname host=localhost user=postgres")
pg_cur = pg_conn.cursor(cursor_factory=psycopg2.extras.RealDictCursor)
pg_cur.execute('whatever')
pg_conn.commit()

其中“whatever”是您要执行的语句。你可以准备陈述,提供论点等。。您需要查看psycopg2了解详细信息。因此,要从python添加列:

pg_cur.execute('alter table table_name add "AATag" varchar')

当然你需要安装软件包。在unix上,这将是:

pip install psycopg2

但是,其他操作系统各不相同。在

相关问题 更多 >

    热门问题