Profile老王的网络日志BlogLists Tools Help

Blog


    11/10/2005

    最近比较烦

    自从我把程序放到了debian下,由于不熟悉linux系统,出了很多问题,最近一次是我所有的表都变成只读的了,解决方式如下:
     
    /etc/init.d/mysql stop
    chmod -R 777 /var/lib/mysql/
    /etc/init.d/mysql start
     
     
    9/8/2005

    mysql小发现

    比如说,id等于1的行有一个列aaa的值是111
     
    update xxx set aaa = 111 where id = 1
     
    也就是说,用同样的值去更新,结果Mysql忽略这个操作
     
    别的数据库不知道,可能都不做,嘻嘻,我今天才知道这个事情,因为,我做密码修改的时候,用户总说又问题,原来他用和以前相同的密码去修改,而这时候我程序的mysql_affected_rows()始终是0,所以就出问题了
    7/27/2005

    Mysql与外键

    Mysql的INNODB表类型支持外键,下面看如何设置,
     
    create parent
    (
    `id` int(10) unsigned NOT NULL auto_increment,
    PRIMARY KEY  (`id`)
    )TYPE=InnoDB;
     
    create child
    (
    `id` int(10) unsigned NOT NULL,
    KEY `id` (`id`),
    FOREIGN KEY (`id`) REFERENCES `parent` (`id`) ON DELETE CASCADE
    )TYPE=InnoDB;
     
    要注意的是,在建立外键之前应该先建立索引(KEY `id` (`id`)),当然了,还要把所有的表类型都建成INNODB类型。
     
    此外,如果表已经建立好了,我们还可以通过ALTER语句来建立外键:
     
    ALTER TABLE `child`
    ADD CONSTRAINT `constraint_name`
    FOREIGN KEY (`id`) REFERENCES `parent` (`id`)
    ON DELETE CASCADE;