oracle数据库的一个表中,怎么设置字段的默认值

oracle数据库的一个表中,怎么设置字段的默认值,第1张

如果表已经存在,用如下方法设置默认值

alter table 表名 modify 字段名 default 默认值

如test表中设置age字段为30,可用如下语句:

alter table test modify age default 30

扩展资料:

Oracle关于默认值的其他用法

添加、修改默认值:alter table table_name modify column_name default 具体内容

删除默认值:alter table table_name modify column_name default null

增加列(约束、默认值)

语法:alter table tb_name add column datatype [default val] constraint .....

如果添加not null(primary key约束要求值也不能为null)约束,需要保证当前表中没有数据存在。

新添加的列,相当于表定义中最后一个定义的列。

<?php

$dbhost = 'ip'

$dbusername = 'username'

$dbpass = 'password'

$dbname = 'databasename'

$db_connect = new mysqli($dbhost, $dbusername, $dbpass, $dbname)

// 获取数据库中各个表的基础信息

$sql = 'SELECT TABLE_SCHEMA,TABLE_NAME FROM information_schema.`TABLES` WHERE TABLE_SCHEMA="'.$dbname.'"'

$result = $db_connect->query($sql)

while ($row = mysqli_fetch_assoc($result)) {

$tables[] = $row

}

//取出所有表的名称

$tables = array_column($tables, 'TABLE_NAME')

//要查询的字段名

$name = 'abc'

//含有该字段名的表名称数组

$needs = array()

// 对各个表做遍历,获取含有该字段的表名称

foreach ($tables as $table) {

$sql = 'select '.$name.' from '.$table

if ($result = $db_connect->query($sql)) {

$needs[] = $table

}

}

return $needs

1. 使用CodeFirst方式创建数据库

我们新建一个控制台项目,项目中添加两个Model:Author和Blog以及DbContext。 DbContext的添加方式如下:

项目上右键->添加->新建项->ADO.NET Entity Data Model->Empty Code First model

项目代码如下:

1 //默认生成的数据表名为类名+字母s,这里使用TableAttribute来指定数据表名为T_Authors

2 [Table("T_Authors")]

3 public class Author

4 {

5 public int Id { setget}

6 public string Name { setget}

7 /*

8 此处定义了Blog类型的属性,所以要确保Blog类中至少要有一个表示主键的字段,即public int Id { setget}。

否则在生成数据表时会报错:"EntityType 'Blog' has no key defined. Define the key for this EntityType.

9 Blogs: EntityType: EntitySet 'Blogs' is based on type 'Blog' that has no keys defined."

10 */

11 public virtual ICollection<Blog>Blogs { setget}

12 }

13

14 [Table("T_Blogs")]

15 public class Blog

16 {

17 public int Id { setget}

18 public string Title { setget}

19 public DateTime Time { setget}

20 public int AuthorId { setget}

21 public virtual Author Author { setget}

22 }

23

24 public class MyDbContext: DbContext

25 {

26 public MyDbContext()

27 : base("name=MyDbContext")

28 {

29 }

30 //DbContext会根据配置文件中connectionStrings指定的数据库名称来建立数据库

31 //DbContext根据DbSet属性的类型来创建数据表,这里指定了Author类型的属性,所以会生成T_Authors数据表

32 public virtual DbSet<Author>Authors { setget}

33 }

CodeFirst方式会根据配置文件中的配置生成数据库,这里小编使用的是MYSQL数据库,配置文件如下:

1 <!--EF for MYSQL-->

2  <entityFramework codeConfigurationType="MySql.Data.Entity.MySqlEFConfiguration, MySql.Data.Entity.EF6">

3 <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />

4 <providers>

5 <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />

6 </providers>

7 </entityFramework>

8 <connectionStrings>

9 <add name="MyDbContext" connectionString="server=localhostport=3306database=EFuid=rootpassword=root" providerName="System.Data.MySqlClient" />

10 </connectionStrings>

PS:小编使用的是EF6和MYSQL数据库,所以要在项目中添加对Mysql.Data.Entity.EF6以及EntityFrameword 6.0的引用。

到此,我们已经完成生成数据库的工作,接下来在Main方法中写两行代码:

1 using (var db = new ManagerDb())

2 {

3 db.Authors.Add(new Author() { Name = "xfh" })

4 db.SaveChanges()

5 }


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6425680.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-22
下一篇2023-03-22

发表评论

登录后才能评论

评论列表(0条)

    保存