讨论各种MySQL问题,可以包括基础问题,疑难,优化等。
Submitted by tystok on 周二, 2007/01/23 - 15:53
叶金荣在基础知识中写如何去除数据表中的重复数据利用数据导入导出的方式.这种方式是能实现的,数据建立唯一索引的.但有一个更为简单的方法,能达到这个目的.那就是 IGNORG,比如:
ALTER IGNORE TABLE `tbl_name` ADD UNIQUE (`un_name`);
tal_name 为表名,un_name唯一索引名.
IGNORE 是当出现错误时,也就是当前处理的记录,与前面处理过的数据的有冲突(重复),忽略之.使SQL继续进行,这样便把可以达到去重的目的.
引申:这个选项在insert中也存在.我们如果在一个执行过程中,有多个insert 时,不免会在唯一索引字段上会有重复的.那么,使用ignore 会使得insert继续进行.而不是中断.
Submitted by nigelxu on 周一, 2007/01/22 - 18:35
昨天,根据版主大人的帮助,终于把mysql从网站上搬运到自己机器上,安装好了(在此,多谢版主哈)。可是问题接踵而至,安装完了不能启动,不管是输入命令:mysqld还是通过Windows计算机管理来启动服务,都没办法启动起来,通过Windows任务管理起启动的时候会报系统错误:在本地机器上无法启动MySql(默认的服务器名)服务。错误 1067:进程意外终止。知道的告诉菜鸟(国家保护动物)一声是怎么回事啊?谢谢。
Submitted by bentata on 周日, 2007/01/21 - 20:18
mysql我刚刚接触,遇到一些麻烦
我输入一条code
例如:select * from sales_rep order by commission asec;
我一但运行,那必定会错的嘛,应该是desc
所以我必须修改嘛,但我发现只能按方向键上,或者重新打一变嘛,但我想在程序中进行修改嘛,应为上面的举例只有一条,但如果我要创建一个大的TABLE 难免会出现错误,一但运行,那我就不是死定拉,有没有哪个补丁能帮助我像oracle一样,在程序中进行修改的类
还有就是,我放大窗口,最多也就屏幕的1/2大,不能全平,为什么类??
我用的是mysql server 5.0(mysql command line client)
目前就遇到这些关于软件方面的问题,请给予帮助~!!
Submitted by nigelxu on 周日, 2007/01/21 - 14:40
在下是mysql的新人,之前写过一些sql语句、函数、存储过程之类的代码,但是对于在服务器上搭建数据库,还没有自己动手做过,之前都是公司搭建好数据库,然后再让我们去写代码的。现在要自己独立做项目了,情况稍显紧急,所以,希望斑竹或者mysql搭建服务器数据库的高人,给以指点一两篇mysql搭建服务器方面的资料,下载地址,搭建步骤什么的,不甚感激!
Submitted by bentata on 周四, 2007/01/18 - 23:05
i am a beginner.
the mysql-5.0.19-win32 i used
but i can't update the code where i typed the errors;
i means the system tell me the mistake then i want to update the right
things in the original code;
tell me which patch i can download?
now i have no idea just retype the code
please tell me solution
thank for your helping
Submitted by beike on 周四, 2007/01/18 - 15:14
查询总是很慢,表中大约有20万条记录,有时候select count(*) from table 需要2秒钟,
叶叔帮忙看看有什么问题。
=====================================
070118 14:39:38 INNODB MONITOR OUTPUT
=====================================
Per second averages calculated from the last 5 seconds
----------
SEMAPHORES
----------
OS WAIT ARRAY INFO: reservation count 3580, signal count 3542
Mutex spin waits 2823, rounds 43988, OS waits 621
RW-shared spins 5613, OS waits 2675; RW-excl spins 301, OS waits 265
------------
TRANSACTIONS
------------
Trx id counter 0 410695
Purge done for trx's n:o < 0 410679 undo n:o < 0 0
History list length 22
Total number of lock structs in row lock hash table 0
LIST OF TRANSACTIONS FOR EACH SESSION:
---TRANSACTION 0 410632, not started, OS thread id 1816
Submitted by 猪山飞雪 on 周五, 2007/01/12 - 09:03
我把我winXP下的mysql的data里的两个数据库book和shop复制到我Linux下的mysql的data里面.可以连接.但是出现的问题是,我可以对book里的所有表进行任何的操作.但是我对shop里的表却只能查看.我做其他操作的时候,出现错误提示:#1036 - Table 'xxxxx' is read only. 这让我很困惑.因为
我对book里的所有表进行任何操作都没有问题啊...我试着在shop里新建了个表.又可以对这个表进行操作..我实在是不明白.希望各位大侠帮帮忙啊...小弟感激不尽
winXP下的mysql版本是5.0.19,Linux下的mysql版本是5.0.27
Submitted by sxryan on 周三, 2007/01/10 - 09:56
我有两张表A和B,当表A中增加一条记录时需要在表B中增加一列(是一列,不是一行,也就是改变表的结构)。
这中情况应该怎么办呢?
把Alter语句放到哪儿呢?
我以前一直都是用trigger,但是trigger中好像不允许使用(报错:Explicit or implicit commit is not allowed in stored function or trigger.)。
Submitted by e爱上你 on 周一, 2007/01/08 - 23:39
版本: mysql-4.0.26
手册中写着windows平台只需要下载时区数据表并copy到mysql数据库下重启就行了,
为什么还是不行呢?
有谁遇到同我一样的问题吗?
主要是这个内置函数unix_timestamp()
Submitted by xiaomaguohe on 周一, 2007/01/08 - 15:34
mysql>
create procedure input_college (
v_yxbh int,
v_yxmc varchar(10),
v_lqfsx int,
v_zsrs int,
r int)
begin
select count(*) into r from colleges where id=v_yxbh;
if r>0 then
dbms_output(college have exist!);
else insert into colleges values(v_yxbh,v_yxmc,v_lqfsx,v_zsrs,0); commit; dbms_output(college v_yxmc insert successful!);
end if
exception when others then dbms_output("college "v_yxmc" insert erroe!"); end;//
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(college have exist!); else insert into colleges values(v_yxbh,v_yxmc,v_lqfs' at line 1
mysql>
请问dbms_output那里应该怎么写?
写的ORACLE
页面
最近评论