ORA-02266: 表中的唯一/主键被启用的外部关键字引用
在想要截断表的时候报了这个错误,原因是表中的主键被其他表的字段引用了。
解决方法是先禁用表的主键约束,等截断后再启用:
ALTER TABLE title DISABLE PRIMARY KEY CASCADE; TRUNCATE TABLE title; ALTER TABLE title ENABLE PRIMARY KEY; ALTER TABLE title_configure ENABLE CONSTRAINT fk_titlecfg_titleID;
* 注意的是在ENABLE主键后不会自动恢复外键(没有cascade选项),因此需要手工对引用该键的约束进行ENABLE。
access里执行sql。。
本以为只能执行查询的。。今天试了下。。
打开数据库,查询-新建查询-设计视图,弹出[显示表]对话框,直接关闭,在上方的灰色区域中右击,选择[SQL视图]即可手工输入SQL。
Oracle客户端远程连接配置。。
首先打开Net Configuration Assistant,命名方法配置里选上:ORACLE NAMES、本地、主机名。
接着在本地NET服务名配置中添加,填入目标的host名、服务名与端口号,默认将采用scott/tiger进行连接。
(host名可以通过在控制台里tnsping主机IP获得)
测试成功后运行SQL*Plus,主机字符串填入配置在本地NET里的服务名,即可进行连接。
MySQL: Unknown type '246 in binary-encoded result set.
在执行SUM函数时报错,COUNT函数却可以正常使用。
百度了下,说是MYSQL5在decimal类型上有BUG,需要改成int。可是我明明就是用int…… = =
又说jar包版本太低,于是将3.2.0的换成5.0.8的,导入一堆jar包。结果运行起来PreparedStatement的asSql方法报空指针。
换成5.0.6的jar包,终于正常了啊 T O T
MySQL curDate() + 7..
原来不会那么智能。。比如今天是"20091027",这个执行的结果会是"20091034",
插入数据库就报了Incorrect datetime value错误。。
正确写法应该使用date_add函数:date_add(curdate(), interval 7 day) ,笔记之。
MySQLSyntaxErrorException: This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
同学的一个项目。。之前的数据库是MSSQL的,满目的top在子查询语句中,于是照猫画虎,把top和pageSize放到后面改成limit,发现报错。
这个错误的意思是,该版本的MySQL不支持LIMIT在IN/ALL/ANY/SOME的子句中。
其实 = = limit函数已经很好用了。。比如原来的MSSQL用的拼接语句是
-
sqlStr = "select top " + pageSize + " * from IndentInfo";
-
if (page == 1)
-
{
-
sqlStr = sqlStr + " order by Id desc";
-
}else {
-
sqlStr = sqlStr + " where Id not in ( select top " + (recordCount-pageSize * page ) + " Id from IndentInfo order by Id
-
) and Id in " +
-
"(select top " + (recordCount - pageSize * (page-1)) + " Id from IndentInfo order by Id) " + " order by Id desc";
-
}
改为MySQL用的拼接语句则可以是:
-
sqlStr = "select * from IndentInfo";
-
if (page == 1)
-
{
-
sqlStr = sqlStr + " order by Id desc limit " + pageSize;
-
}else {
-
sqlStr = sqlStr + " order by Id desc limit " + (recordCount - pageSize * (page-1)) + ", " + pageSize;
-
}
limit中的参数如果只有1个,则表示页面大小;如果有2个,则第一个参数为起始记录,第二个参数为页面大小。
【应试】数据库设计范式
舍友周日要考数据库……于是给她搜到一篇网摘,写得不错 顺便转进来……
转自:http://blog.csdn.net/wydin/archive/2004/09/15/104903.aspx
PL/SQL课堂练习(过程、函数、包、触发器)
1、过程练习,掌握过程参数(in/out/in out)及调用环境
1.1)过程名字PROC_EMP(in hireYear,out manCount,in out commis_pct)
需求描述:
输入一个hireYear,计算出该年入职的员工数staffCount;
给定一个commis_pct,上述范围的职员如果没有提成(commission_pct)的,
用这个数作为他的提成,已有提成的,不做改动
上述范围职员的提成最大值用commis_pct参数返回