精华内容
下载资源
问答
  • PowerBuilder修改数据库表结构Foxbase修改数据库结构不同。在PowerBuilder中,除可以在数据库表结构中添加字段名外,无法直接修改数据库表结构,如删除某个字段名或类型或字段名长度等,都会导致数据库表记录...

    PowerBuilder是目前公认的、最佳的数据库前端开发工具之一。在实际开发应用中,经常会遇到修改数据库表结构的情况。用PowerBuilder修改数据库表结构与用Foxbase修改数据库结构不同。在PowerBuilder中,除可以在数据库表结构中添加字段名外,无法直接修改数据库表结构,如删除某个字段名或类型或字段名长度等,都会导致数据库表记录的丢失。我们通过实践探索,总结了几种方法仅供大家

    参考,请大家批评指正。

    一、修改数据库表结构,数据库表中没有记录

    方法1:将表结构以ExportTable文件格式输出。

    Database中选择要修改的数据库表Table

    Objects中选择ExportTableViewSyntaxtoLog,取名保存即选SaveLogAs,以*.sql格式保存。

    Objects中选择DatabaseAdministration

    File中选择DosOpen,选文件名Filename*.sql,打开进行修改。

    Objects中选择Execute SQL。即产生一新的数据库表结构。

    注意:Table名不要同名。

    方法2:将表结构以SQLSyntax文件格式输出。

    Database中选择要修改的数据库表Table

    Preview键。

    File中选择SaveRowsasFileFormatSQLSyntax,取表名*.sql保存。

    File中选择DosOpen,打开表名*.sql,进行修改。

    取表名后,Execute SQL

    注意:此种方法没有生成PrimaryKey

    二、修改数据库表结构,保存原数据库表中记录

    方法1:先修改数据库表结构,用SQL语句转移数据库表中记录

    将表1生成表1.sql,修改结构,将表1另取名为表2

    运行表2.sql,生成表2。此时产生一新的数据库表结构。

    Objects中选择DatabaseAdministration,写SQLStatementInsert into新表名 

    select* from旧表名;Execute SQL。将旧表中所有字段内容转入新表中。

    删除表1,从File中选择DosOpen,打开文件名Filename即表2.sql,将表2统一改为表1。运行表1.sql

    ,生成新结构的表1,此时无记录。

    按步骤3,将表2中的记录全部转入表1中。
      

    若将部分字段转入,写SQLStatement
      
    insertinto
    新表名(字段1,字段2......)
      

    select
    字段1,字段2......from旧表名;

    Execute SQL。旧表中部分字段内容转入新表中。

    方法2:将表结构和记录以SQLSyntax文件格式输出。


    Database中选择要修改的数据库表Table,按Preview键。

    File中选择SaveRowsasFile FormatSQLSyntax,取表名*.sql保存。

    File中选择DosOpen,打开表名*.sql,进行修改。

    取表名后,Execute SQL

    方法3:将表结构和记录以TXT文件格式输出。
    Database中打开数据库表,按Preview键。

    File中选择SaveRowsasFile FormatTXT,取表名*.txt保存。

    将表生成表.sql,修改结构,运行表.sql,此时产生一新的数据库表结构。

    Database中打开数据库表,按Preview键。

    Rows中选择Import,选*.txt

    File中选择SavechangestoDatabase

    展开全文
  • 公司要修改数据库表结构,把两个表整合成一个,现在数据库端已经修改好了, 把B表数据和列都加到A表中了,但是项目中用到B表的页面有200个左右, 有什么好办法快速的修改好吗?项目是asp.net,...
  • 这些修改有很多细节方面的修改,包含存储过程,增加修改表字段类型,添加字段。 然后我们自己更新并测试好软件后,需要改动客户那边的老库,老库的数据是要保存的。 解决方案一:很快我就想到SQL SERVER 08 R2...
  • PowerBuilder修改数据库表结构的技巧

    千次阅读 2002-05-13 09:30:00
    PowerBuilder修改数据库表结构Foxbase修改数据库结构不同。在PowerBuilder中,除可以在数据库表结构中添加字段名外,无法直接修改数据库表结构,如删除某个字段名或类型或字段名长度等,都会导致数据库表记录...

    PowerBuilder是目前公认的、最佳的数据库前端开发工具之一。在实际开发应用中,经常会遇到修改数据库表结构的情况。用PowerBuilder修改数据库表结构与用Foxbase修改数据库结构不同。在PowerBuilder中,除可以在数据库表结构中添加字段名外,无

    法直接修改数据库表结构,如删除某个字段名或类型或字段名长度等,都会导致数据库表记录的丢失。我们通过实践探索,总结了几

    种方法仅供大家参考,请大家批评指正。

    一、 修改数据库表结构,数据库表中没有记录

    方法1:将表结构以Export Table 文件格式输出。

    Database中选择要修改的数据库表Table

    Objects中选择Export TableView Syntax to Log,取名保存即选Save Log As,以*.sql格式保存。

    Objects中选择Database Administration

    File中选择Dos Open,选文件名File name*.sql,打开进行修改。

    Objects中选择Execute SQL。即产生一新的数据库表结构。

    注意:Table名不要同名。

    方法2:将表结构以SQL Syntax 文件格式输出。

    Database中选择要修改的数据库表Table

    Preview键。

    File中选择Save Rows asFile Format SQL Syntax,取表名*.sql保存。

    File中选择Dos Open,打开表名*.sql,进行修改。

    取表名后,Execute SQL

    注意:此种方法没有生成Primary Key

    二、 修改数据库表结构,保存原数据库表中记录

    方法1:先修改数据库表结构,用SQL语句转移数据库表中记录

    将表1生成表1.sql,修改结构,将表1另取名为表2

    运行表2.sql,生成表2。此时产生一新的数据库表结构。

    Objects中选择Database Administration,写SQL Statement Insert into 新表名select * from 旧表名; Execute SQL。将旧表中所有字段内容转入新表中。

    删除表1,从File中选择Dos Open,打开文件名File name即表2.sql,将表2统一改为表

    1。运行表1.sql,生成新结构的表1,此时无记录。

    按步骤3,将表2中的记录全部转入表1中。

      若将部分字段转入,写SQL Statement

      insert into 新表名(字段1,字段2......) 

      select 字段1,字段2......from 旧表名;

    Execute SQL。旧表中部分字段内容转入新表中。

    方法2:将表结构和记录以SQL Syntax 文件格式输出。

    Database中选择要修改的数据库表Table,按Preview键。

    File中选择Save Rows asFile Format SQL Syntax,取表名*.sql保存。

    File中选择Dos Open,打开表名*.sql,进行修改。

    取表名后,Execute SQL

    方法3:将表结构和记录以TXT 文件格式输出。

    Database中打开数据库表,按Preview键。

    File中选择Save Rows asFile Format TXT,取表名*.txt保存。

    将表生成表.sql,修改结构,运行表.sql,此时产生一新的数据库表结构。

    Database中打开数据库表,按Preview键。

    Rows中选择Import,选*.txt

    File中选择Save changes to Database

    注意:方法1适用于任何修改数据库表结构的任何情况。方法2和方法3对删除字段名不适用。

    另外,用Message传递参数必须注意以下几点:

    1. 最好执行完窗口操作(打开或关闭)后马上将Message消息对象的值传给变量,这是因为Message是全局使用的对象,每一次事件被触发或传送时都会被使用,其他Script 也有可能用到Message消息对象,因此它有被覆盖的危险。

    2.避免传送NULL对象,以免程序出错。 
    展开全文
  • 起因 ​ 某天发布版本的时候...​ 在网上查找了一些资料,大概意思就是说当要修改表结构时,pg会申请一个排他锁“ACCESS EXCLUSIVE”,把整个表锁起来,而此时如果这张表还有一些其他的操作正在进行,比如查询等...

    起因

    ​ 某天发布版本的时候需要修改表的某些字段,数据库用的是postgresql,执行alter table命令长时间没有返回执行成功,好像卡住了一样,也不报错,良久,还不成功,于是结束执行这个命令。

    问题分析

    ​ 在网上查找了一些资料,大概意思就是说当要修改表结构时,pg会申请一个排他锁“ACCESS EXCLUSIVE”,把整个表锁起来,而此时如果这张表还有一些其他的操作正在进行,比如查询等,则pg会等待这些操作完成之后,才能进行修改表结构的操作,而一旦其他操作一直没有完成的话,我们这个修改表结构的操作也就完成不了,于是就出现了上面的现象。

    解决办法

    ​ 查看数据库的每一个连接的状态,执行的是什么sql,执行的时间等。

    SELECT * FROM pg_stat_activity WHERE datname='数据库名字';
    

    ​ 执行上面的sql,发现有一个查询执行了一个月都还没结束,按道理来说再慢的查询应该也返回结果了吧,顿时心中千万只cnm飘过。。。

    ​ 话不多说,找到那个连接的pid字段,直接用下面的sql把这个连接杀死。

    select pg_terminate_backend(pid);
    

    ​ 杀死之后再重新执行alter table,几秒钟之后,黑窗口返回执行成功,大喜。

    补充

    ​ postgresql八种表锁。

    表级锁模式 解释
    ACCESS SHARE 只与“ACCESS EXCLUSIVE” 锁模式冲突;
    查询命令(Select command)将会在它查询的表上获取”Access Shared” 锁,一般地,任何一个对表上的只读查询操作都将获取这种类型的锁。
    ROW SHARE 与”Exclusive’和”Access Exclusive”锁模式冲突;
    ”Select for update”和”Select for share”命令将获得这种类型锁,并且所有被引用但没有 FOR UPDATE 的表上会加上”Access shared locks”锁。
    ROW EXCLUSIVE 与 “Share,Shared roexclusive,Exclusive,Access exclusive”模式冲突;
    “Update,Delete,Insert”命令会在目标表上获得这种类型的锁,并且在其它被引用的表上加上”Access shared”锁,一般地,更改表数据的命令都将在这张表上获得”Row exclusive”锁。
    SHARE UPDATE EXCLUSIVE ”Share update exclusive,Share,Share row ,exclusive,exclusive,Access exclusive”模式冲突,这种模式保护一张表不被并发的模式更改和VACUUM;
    “Vacuum(without full), Analyze ”和 “Create index concurrently”命令会获得这种类型锁。
    SHARE 与“Row exclusive,Shared update exclusive,Share row exclusive ,Exclusive,Access exclusive”锁模式冲突,这种模式保护一张表数据不被并发的更改;
    “Create index”命令会获得这种锁模式。
    SHARE ROW EXCLUSIVE 与“Row exclusive,Share update exclusive,Shared,Shared row exclusive,Exclusive,Access Exclusive”锁模式冲突;
    任何Postgresql 命令不会自动获得这种锁。
    EXCLUSIVE 与” ROW SHARE, ROW EXCLUSIVE, SHARE UPDATE EXCLUSIVE, SHARE, SHARE ROW EXCLUSIVE, EXCLUSIVE, ACCESS EXCLUSIVE”模式冲突,这种索模式仅能与Access Share 模式并发,换句话说,只有读操作可以和持有”EXCLUSIVE”锁的事务并行;
    任何Postgresql 命令不会自动获得这种类型的锁;
    ACCESS EXCLUSIVE 与所有模式锁冲突(ACCESS SHARE, ROW SHARE, ROW EXCLUSIVE, SHARE UPDATE EXCLUSIVE, SHARE, SHARE ROW EXCLUSIVE, EXCLUSIVE, and ACCESS EXCLUSIVE),这种模式保证了当前只有一个事务访问这张表;“ALTER TABLE, DROP TABLE, TRUNCATE, REINDEX, CLUSTER, VACUUM FULL” 命令会获得这种类型锁,在Lock table 命令中,如果没有申明其它模式,它也是缺省模式。
    展开全文
  • 我想学习创建数据库表结构,但是不知道如何下手,求大神解答 刚才的问题有歧义,我修改了下. 然后声明下: 我会数据库建模工具 我就是不太明白如何创建一个好的数据库结构,一个不容易被修改的结构,一个高效的...
  • 数据库修改表结构SQL

    2012-03-21 10:05:50
    [size=medium][size=small]数据库修改表结构SQL 修改表结构包括: 增加字段、删除字段、增加约束、删除约束、修改缺省值、修改字段数据类型、重命名字段、重命名表。 所有这些动作都是 ALTER TABLE 命令执行的...
    [size=medium][size=small]数据库修改表结构SQL
    修改表结构包括:
    增加字段、删除字段、增加约束、删除约束、修改缺省值、修改字段数据类型、重命名字段、重命名表。
    所有这些动作都是用 ALTER TABLE 命令执行的。
    1、 增加字段
    ALTER TABLE products ADD description text;
    你也可以同时在该字段上定义约束,使用通常的语法:
    ALTER TABLE products ADD description text CHECK (description <> '');实际上,所有在 CREATE TABLE 里描述的可以应用于字段之选项都可以在这里使用。不过,我们要注意的是缺省值必须满足给出的约束,否则 ADD 将会失败。 另外,你可以在你正确填充了新字段的数值之后再增加约束(见下文)。
    2、 删除字段
    要删除一个字段,使用下面这样的命令:
    ALTER TABLE products DROP COLUMN description;不管字段里有啥数据,都会消失。和这个字段相关的约束也会被删除。 不过,如果这个字段被另外一个表的外键所引用,PostgreSQL 则不会隐含地删除该约束。你可以通过使用 CASCADE 来授权删除任何依赖该字段的东西:
    ALTER TABLE products DROP COLUMN description CASCADE;
    3、增加约束
    要增加一个约束,使用表约束语法。比如:
    ALTER TABLE products ADD CHECK (name <> '');
    ALTER TABLE products ADD CONSTRAINT some_name UNIQUE (product_no);
    ALTER TABLE products ADD FOREIGN KEY (product_group_id) REFERENCES product_groups;
    ALTER TABLE Teacher add constraint df_sex default('男') for sex
    要增加一个不能写成表约束的非空约束,使用下面语法:
    ALTER TABLE products ALTER COLUMN product_no SET NOT NULL;
    这个约束将立即进行检查,所以表在添加约束之前必须符合约束条件。
    4、 删除约束
    要删除一个约束,你需要知道它的名字。如果你给了它一个名字, 那么事情就好办了。否则系统会分配一个生成的名字,这样你就需要 把它找出来了。psql 的命令 \d tablename 在这儿可以帮忙; 其它接口可能也提供了检查表的细节的方法。然后就是这条命令:
    ALTER TABLE products DROP CONSTRAINT some_name;(如果你在处理一个生成的约束名,比如 $2,别忘了你需要给它 添加双引号,让它成为一个有效的标识符。)
    和删除字段一样,如果你想删除有着被依赖关系地约束,你需要用 CASCADE。 一个例子是某个外键约束依赖被引用字段上的唯一约束或者主键约束。
    除了非空约束外,所有约束类型都这么用。要删除非空类型,用
    ALTER TABLE products ALTER COLUMN product_no DROP NOT NULL;(要记得非空约束没有名字。)
    5、改变一个字段的缺省值
    要给一个字段设置缺省值,使用一个象下面这样的命令:
    ALTER TABLE products ALTER COLUMN price SET DEFAULT 7.77;请注意这么做不会影响任何表中现有的数据行, 它只是为将来 INSERT 命令改变缺省值。
    要删除缺省值,用
    ALTER TABLE products ALTER COLUMN price DROP DEFAULT;这样实际上相当于把缺省设置为空。 结果是,如果我们删除一个还没有定义的缺省值不算错误,因为缺省隐含就是空值。
    6、 修改一个字段的数据类型
    ALTER TABLE products ALTER COLUMN price TYPE numeric(10,2);只有在字段里现有的每个项都可以用一个隐含的类型转换转换城新的类型时才可能成功。如果需要更复杂的转换,你可以增加一个 USING 子句,它声明如何从旧值里计算新值。
    PostgreSQL 将试图把字段的缺省值(如果存在)转换成新的类型, 还有涉及该字段的任何约束。但是这些转换可能失败,或者可能生成奇怪的结果。 在修改某字段类型之前,你最好删除那些约束,然后再把自己手工修改过的添加上去。
    7、给字段改名字
    ALTER TABLE products RENAME COLUMN product_no TO product_number;
    8、. 给表改名字
    ALTER TABLE products RENAME TO items;
    [size=medium][/size]
    展开全文
  • navicat数据库表结构对比

    千次阅读 2020-03-26 15:14:04
    今日涉及到数据库数据整理,牵扯到数据比对,迁移,主要是为了解决 数据库新增字段,以及修改字段类型,新建数据库表,索引新增等等 实现的过程, 在合代码的时候,发现着重记录了一下,后来发现,根本不到记录...
  • 数据库修改表结构Sql

    2010-10-19 10:03:58
    修改表结构包括:  增加字段、删除字段、增加约束、删除约束、修改缺省值、修改字段数据类型、重命名字段、重命名表。所有的这些动作都是alter table命令执行的。   1.增加字段    alter table om_port_...
  • 数据库表结构设计原则

    千次阅读 2018-06-28 11:04:34
    例如:在Student修改时间字段updatetime,在Address修改时间字段modifytime。 同词多义。例如:渠道这个字段,可以channel表示,在委托中表示请求的来源渠道,eg:安卓、IOS、官网;在支付日志中...
  • 数据库下表的查操作2.1 查看表结构、删除表等2.2 表的重命名3. 表的字段操作3.1 添加和删除字段3.2 添加和删除默认值3.3 修改字段属性、长度、和名称4. 索引操作4.1 删除和添加主键4.2 添加和删除唯一索引5. 下...
  • 但是数据库表结构文档又是如此重要,如何是好?今天springboot写了一个工具,自动来生成数据库结构文档,解放程序员,项目已经上传到码云和github上,有兴趣的可以参考一下,当然更欢迎有人来把它更多完善一下,...
  • 项目开发时,一般会有两个(或以上)的数据库,一个开发库和一个正式库,在开发库修改表结构如何才能快速同步到正式库中呢?如果手动一个个字段或属性去修改,实在太麻烦,而且容易遗漏,这更不是一个搞IT的人该的...
  • 使用PowerDesigner挺长时间了,只是一些简单的表结构设计,因需要对当前数据库进行再设计,需要看一下数据库中所有的表,及表之间的关系,并重新修改表结构,因此需求就是怎么把数据库中的表结构反向生成到...
  • 有两种方法,一种写代码,一种maven插件的方法, 那我们当然选择maven插件啦! 步骤一 在pom.xml文件中添加如下代码: 可以根据需求自己修改 <build> <plugins> <plugin> <groupId>...
  • 因为要工作需要,要写软件操作文档,但经过软件制作过程中的不断修改,原设计文档中的部分表结构与当前表结构有了较大出入,需要将oracle数据库表结构导出到word文档中,针对这一问题,本人才两种方法。...
  • 方法1: SET PASSWORD命令  mysql -u root  mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass'); 方法2:mysqladmin  mysqladmin -u root password "newpass"  如果root已经设置过
  • 一朋友问我,想查看一下数据库中,里边一个字段哪天修改字段长度了,我想到了用数据库审计来实现,做个实验,来看下。 朋友那边数据库版本是ORACLE10g,10g版本默认没开启审计功能,需要开启审计。 C:\Documen....
  • 数据库表结构修改自FastAdmin;创建表结构语句是基于MySQL数据的。 这是一个thinkphp框架写的内容管理系统,可以访问www.fastadmin.net获取详细资料。 管理员表 列名 数据类型 字段...
  • Oracle数据库表结构导出成Word文档工具(带源码下载) 修改了一下数据库的连接方式:由于我安装的是win764位+office64+oracle client 32位,MSDAORA.1无法连接,所以将MSDAORA.1换为OraOleDb.Oracle.1,换后正常连接...
  • 截断(了解) 如果说现在要清除中的全部数据,唯一知道的就是“DELETE FROM 名称”,不增加删除的限定条件, 但是这样删除的数据实际上并不会立刻放掉存储空间(数据,索引,约束,...) ...此类操作一般别...
  • DB2,Oracle数据库表结构比较工具[V1.0]

    热门讨论 2013-04-22 15:22:48
    2.由于数据库的限制(例如DB2约束的列不能修改类型,列长度在存在数据的情况下只能改大,等等),生成的脚本仅供参考; 3.尽管经过简单测试,但生成的脚本仍可能有误,或者程序架构、设计难免存在缺陷欢迎提出宝贵...
  • 在web开发中,通常情况下,新增功能或者修改功能涉及到数据库表结构修改、或者是新增表,删除无用的表的情况下,都需要先在测试环境对表结构进行修改,当涉及到的功能越来越多时,对表结构的修改越来越多的时候,...
  • 修改表结构2.1修改表名:2.2添加字段2.3删除字段2.4修改字段:2.5添加/删除默认值、主键、唯一:2.6修改表的存储引擎:2.7设置自增长值2.8删除数据表2.9一些补充 2.修改表结构 2.1修改表名: ALTER TABLE tbl_name ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,074
精华内容 829
关键字:

修改数据库表结构用