在已有的表上定义生成列注意那些问题

生成列会在基本表上进行定义,它所存储的值是通过表达式计算得到的。
为了在已有的表上定义生成列,必须完成以下步骤:
1.将表至于检查挂起状态:
语法:
    SET INTEGRITY FOR <table name> off
示例:
db2pdb@root:~>db2  SET INTEGRITY FOR book1 off
DB20000I  SQL 命令成功完成。
2.对表进行修改,以增加一个或者多个生成列:
语法:
    alter table <table name> 
    add column <column name3> integer(列类型) generated always as(<column name1>+<column name2>),
    add column <column name4> integer(列类型) generated always as
    (case when<column name1>><column name2> then 1 else null end)
示例:
db2pdb@root:>db2 "alter table book1 add column b_temp integer generated always
as(b_id+b_ino)"
DB20000I  SQL 命令成功完成。
3.根据在表上所做的工作的不同,可以使用几种方法完成相应的任务:
  1)表非常大,不能够保证有足够的日志空间来完成这项任务。在将数据载入,开始一致性检查之前,
     需要commit。即使表已经处于检查挂起状态,在这个处理期间也会对其进行锁定。
     如果估计用于更新生成列的日志空间足够进行set integrity(设置一致性),可以使用一下语句:
db2pdb@root:>db2 set integrity for book1 immediate checked force generated
DB20000I  SQL 命令成功完成。
  2)表非常大,但是不能保证有足够的日志空间来完成这项任务,需要完成如下工作:
     获得表的排斥锁,这将会防止除了没有提交的读入事务之外的所有其他事务访问表。
     可以使用下面的语句:
     lock table <table name1> in <exclusive|share>mode
     将表调整为具有没有检查数据的在线状态:
     set integrity for<table name> all immediate unchecked
     使用间歇式提交和判定来更新生成列,以防止将日志填满:
     update<table name1>set(<column name3>,<column name4>)=(default,default) where<predicate>
     使表处于在线状态,检查一致性:
     set integrity for<table name> off
     set integrity for<table name1> immediate checked
     使用commit语句完成事务,解除表的锁定:
     commit
     在使用生成的列值的时候,使用not logged initially选项,将标的日志关闭
     激活not logged initially选项的语句如下:
     alter table<table name>activate not logged initially
     生成值的语句如下:
     set integrity for<table name1> immediate checked force generated
     通过提交事务处理再次关闭not logged initially选项:
     commit
注:生成列只能够在可以定义等于比较的数据类型上定义。
    不能够用于限制,惟一索引,参照限制,主键以及全局临时表。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: GAN(生成式对抗网络)是一种机器学习技术,利用神经网络来生成类似于训练数据的新数据。因此,GAN可以用来生成已有数据类似的数据。 首先,需要准备一些已有的数据,作为GAN的训练集。这些数据可以是任何类型的数据,例如图片、音频或文本。 然后,设置GAN的网络架构。GAN由两个主要的网络组成:生成器和判别器。生成器的任务是生成类似于训练数据的新数据,而判别器的任务是判断生成生成的数据是否与训练数据相似。 在训练过程中,生成生成新数据,并通过判别器来判断其与训练数据的相似度。如果生成生成的数据与训练数据相似度较低,则需要对生成器进行调整,使其生成更加类似于训练数据的数据。 最终,当生成器的输出与训练数据非常相似时,GAN就可以用来生成类似于已有数据的新数据。 利用GAN生成类似于已有数据的新数据具有很大的潜力。例如,可以用GAN生成更多的样本,以便增加数据集的大小,从而提高机器学习算法的精度。此外,使用GAN还可以进行数据扩增,以增强模型的鲁棒性。总之,利用GAN生成类似于已有数据的新数据是一项非常有用的技术。 ### 回答2: GAN是一种生成对抗网络,可以用于生成类似于已有数据的新数据。利用GAN生成已有数据的类似数据的方法是,首先需要定义一个生成器网络和一个判别器网络。生成器网络接收一个随机噪声向量作为输入,尝试生成类似于原始数据的新数据。判别器网络则尝试将原始数据和生成生成的数据进行区分,判断哪些是原始数据,哪些是生成的数据。 在训练过程中,生成器网络和判别器网络相互对抗。生成器网络尝试生成越来越类似于原始数据的生成数据,而判别器网络尝试更好地区分原始数据和生成数据。在训练的过程中,二者逐渐形成一种微妙的平衡,最终生成器网络可以生成与原始数据类似的新数据。 GAN生成类似于已有数据的新数据的应用非常广泛,比如说生成艺术作品、三维模型等。例如,GAN可以生成具有相似脸部特征的新艺术品或者模型。这些生成出来的数据可以用于增强数据集或者帮助人类艺术家、设计师更快地实现他们的创意。而GAN生成的新数据在某些领域也可能被用于模拟和预测。总之,GAN生成已有数据的类似数据在当今大数据、人工智能的背景下具有广泛的应用前景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值