求教:doesn't have a default value错误

DarrenFu1019 2010-12-23 11:09:17
我先这样建了一张表:
create table teams(teamno integer not null primary key,
playerno integer null,
division char(6) not null);
然后在表中插入了数据:
insert into teams values(1,3,'first');
再这样复制一张表时出错:
create table teams_copy5
(teamno integer not null primary key,
playerno integer null,
division char(10) not null) as
(select *
from teams);

出错提示是:
Field 'teamno' doesn't have a default value
当我把“teamno integer not null primary key,”又提示这个错误:
Field 'division' doesn't have a default value

从错误字面上看是没有默认值,可我的teams表也是照着书上建的,并且也插入了一行数据,该如何设置默认值呢?折腾一个晚上了还没有结果,请高手不吝赐教
...全文
514 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
青春季节 2011-01-17
  • 打赏
  • 举报
回复
#1364 - Field 'hy' doesn't have a default value
DarrenFu1019 2010-12-26
  • 打赏
  • 举报
回复
mysql>use tennis4;
Database changed
mysql>select * from teams;
------------------------------
teamno | playerno | division |
------------------------------
1 | 3 | first |
------------------------------
1 row in set (0.23 sec)
ACMAIN_CHM 2010-12-26
  • 打赏
  • 举报
回复
贴出你的
select * from teams;
DarrenFu1019 2010-12-26
  • 打赏
  • 举报
回复
我截图上是这样的(Mysql版本:5.0.18-nt):
mysql>create database tennis4;
Query OK,1 row affected (0.01 sec)

mysql>use tennis4;
Database changed
mysql>create table teams(teamno integer not null primary key,playerno integer null,division char(6) not null);
Query OK,o rows affected (0.25 sec)

mysql>insert into teams values(1,3,'first');
Query OK,1 row affected (0.25 sec)

mysql>create table teams_copy5(teamno integer not null primary key,playerno integer null,division char(10) not null) as (select * from teams);
ERROR 1364 (HY000):Field 'teamno' does't have a default value
Study_Work_2009 2010-12-26
  • 打赏
  • 举报
回复
是不是mysql版本问题
ACMAIN_CHM 2010-12-26
  • 打赏
  • 举报
回复
看不到你的图。
建议你象3楼一样,用文本贴出你的结果。
DarrenFu1019 2010-12-26
  • 打赏
  • 举报
回复


我的描述没错啊,以上是我操作的截图
rucypli 2010-12-24
  • 打赏
  • 举报
回复
我执行也没错
iihero_ 2010-12-24
  • 打赏
  • 举报
回复
试了一下,没有任何错误。看来楼主的描述可能有误。
ACMAIN_CHM 2010-12-24
  • 打赏
  • 举报
回复
mysql> create table teams(teamno integer not null primary key,
-> playerno integer null,
-> division char(6) not null);
Query OK, 0 rows affected (0.75 sec)

mysql> insert into teams values(1,3,'first');
Query OK, 1 row affected (0.19 sec)

mysql> create table teams_copy5
-> (teamno integer not null primary key,
-> playerno integer null,
-> division char(10) not null) as
-> (select *
-> from teams);
Query OK, 1 row affected (0.22 sec)
Records: 1 Duplicates: 0 Warnings: 0

mysql>
小小小小周 2010-12-23
  • 打赏
  • 举报
回复
我按照你上面的建表语句创建没有问题.
要是设置默认值的话,就是修改列的属性了,
则用 alter table teams ALTER column division set default '默认值';

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧