瀏覽模式: 普通 | 列表
SFS3畢業生升學資料中的畢業生名冊沒有人名時的原因
是因為 grad_stud表中,該年度的畢業生student_sn為0值
下面語法,可以解決這個問題。

但如果是有學號重複的情況,可能要再修改一下語法。


UPDATE grad_stud set  grad_stud.student_sn=
(select student_sn from stud_base
where stud_base.stud_id=grad_stud.stud_id )
where grad_stud.stud_grad_year='104'

UPDATE [table_name] SET [column_name] =
(SELECT [column_name] FROM [table_name] WHERE [column_name] = [value])
WHERE [column_name] = [value];

mysqldump 備份時的錯誤 1449

今天在一部新安裝的機器上,將復原良好的學籍系統
作備份,卻無法成功備份。
mysqldump -uroot -p --default-character-set=latin1 sfs3 > sfs30324.sql

mysqldump: Got error: 1449: The user specified as a definer ('sfs3man'@'localhost') does not exist when using LOCK TABLES

原來當初還原資料庫時,是用mysqldump 下來的資料倒回去的。

mysqladmin -uroot -p create sfs3;

mysql -uroot -p  sfs3 < sfs3_bak.sql

而在備份檔案 sfs3_bak.sql 內,有下面的資料。

/*!50013 DEFINER=`sfs3man`@`localhost` SQL SECURITY DEFINER */
/*!50013 DEFINER=`sfs3man`@`localhost` SQL SECURITY DEFINER */
/*!50013 DEFINER=`sfs3man`@`localhost` SQL SECURITY DEFINER */

有的學籍系統並不是用root去連接,而是設一個sfs3man
我們dump 下來時,它也將這個使用者 sfs3man 記錄了。
而還原到新資料庫時,它也將這個記錄記著。
所以您如果沒有用sfs3man,它就不給您dump 這個資料庫了。
就會產生1449的錯誤。
mysqldump: Got error: 1449

其實這是openid 用的那三個表造成的。
teacher_post_view
teacher_course_view
student_view

方式1:較簡單的方式,
就是再建一個sfs3man 的帳號,就可以正常備份了。

grant all privileges on sfs3.* to 'sfs3man'@'localhost' identified by '該帳號密碼';

方式2:砍掉那三個表再去dump
登入到mysql 指令介面,再下刪掉那三個表的指令

DROP VIEW IF EXISTS sfs3.teacher_post_view;
DROP VIEW IF EXISTS sfs3.teacher_course_view;
DROP VIEW IF EXISTS sfs3.student_view;



不能成功產生國前署XML原因

sfs3不能成功產生國前署XML原因,建立該表即可。

CREATE TABLE `stud_move_import` (
  `move_id` bigint(20) NOT NULL AUTO_INCREMENT,
  `stud_id` varchar(20) NOT NULL DEFAULT '',
  `move_kind` varchar(10) NOT NULL DEFAULT '',
  `move_year_seme` varchar(6) NOT NULL DEFAULT '',
  `school_move_num` int(11) DEFAULT NULL,
  `move_date` date NOT NULL DEFAULT '0000-00-00',
  `move_c_unit` varchar(30) DEFAULT NULL,
  `move_c_date` date DEFAULT '0000-00-00',
  `move_c_word` varchar(20) DEFAULT NULL,
  `move_c_num` varchar(14) DEFAULT NULL,
  `update_time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `update_id` varchar(20) NOT NULL DEFAULT '',
  `update_ip` varchar(15) NOT NULL DEFAULT '',
  `school` varchar(40) NOT NULL DEFAULT '',
  `school_id` varchar(6) DEFAULT NULL,
  `student_sn` int(10) unsigned NOT NULL DEFAULT '0',
  `reason` text NOT NULL,
  `city` varchar(10) NOT NULL DEFAULT '',
  `new_address` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`move_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;



CREATE TABLE `stud_seme_import` (
  `seme_year_seme` varchar(6) NOT NULL DEFAULT '',
  `stud_id` varchar(20) NOT NULL DEFAULT '',
  `seme_class_grade` varchar(10) DEFAULT NULL,
  `seme_class_name` varchar(10) DEFAULT NULL,
  `seme_num` tinyint(3) unsigned DEFAULT NULL,
  `seme_class_year_s` int(10) unsigned DEFAULT NULL,
  `seme_class_s` tinyint(3) unsigned DEFAULT NULL,
  `seme_num_s` tinyint(3) unsigned DEFAULT NULL,
  `student_sn` int(10) unsigned NOT NULL DEFAULT '0',
  `teacher_name` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`seme_year_seme`,`stud_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
  
課程流程

1.至國前署註冊XCA.
2.上傳測試->收到mail-1
3.至學籍系統,產生XML->上傳->收到mail-2
4.回報縣府hnps@hnps.chc.edu.tw