Re: [請益] 多筆資料刪除

看板PHP作者 (薛丁格的貓)時間16年前 (2009/08/13 11:09), 編輯推噓6(6011)
留言17則, 5人參與, 最新討論串4/4 (看更多)
※ 引述《dream1x (翻桌客 )》之銘言: : 有好幾個資料表都有同樣欄位需要刪除 : 功能我這樣土法煉鋼是可以達到的 : 但是效率的問題 : 是否有一氣呵成的sql下法呢 : 一次把所有表格的 tourid = 10都給刪掉(型態長度皆同等) : 目前程式碼 : mysql_query("delete from tra where tourId = 10", $link)or die(mysql_error()); : mysql_query("delete from bad where tourId = 10", $link)or die(mysql_error()); : mysql_query("delete from gue where tourId = 10", $link)or die(mysql_error()); : mysql_query("delete from rec where tourId = 10", $link)or die(mysql_error()); : mysql_query("delete from alb where tourId = 10", $link)or die(mysql_error()); : 感謝 最近都沒在用 mysql 所以直接去看它們的文件. 3.23+ 方法有 2 種 1. reference 在 create table 的時候就建 FOREIGN KEY ON DELETE CASCADE ; 這樣砍主表, 附資料會全部一起砍光光. 2. SQL FUNCTION CREATE FUNCTION 其實只是把你在PHP寫的都放到 SQL 裡 結論能用1是最好啦. 不能的話就乖乖砍吧 -- Live Long and Prosper -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.63.31.135

08/13 11:20, , 1F
謝謝 那我採用方案1試試看
08/13 11:20, 1F

08/13 12:49, , 2F
推關聯
08/13 12:49, 2F

08/13 12:53, , 3F
說到這個,有推薦的TOOL可以直接看關聯圖嗎
08/13 12:53, 3F

08/13 12:53, , 4F
像是SQL SERVER那樣
08/13 12:53, 4F

08/13 12:54, , 5F
目前我是用Navicat,感覺在建立關聯上,很不方便
08/13 12:54, 5F

08/13 13:50, , 6F
ERD 圖啊有.
08/13 13:50, 6F

08/13 14:58, , 7F
方案1..是不是只有在InnoDB有用?
08/13 14:58, 7F

08/13 14:59, , 8F
用trigger來達到也以 意思跟2一樣
08/13 14:59, 8F

08/13 15:30, , 9F
trigger 還多一道工, 別麻煩了.
08/13 15:30, 9F

08/13 15:52, , 10F
不想多一道工,前題是用innoDB格式吧
08/13 15:52, 10F

08/13 15:52, , 11F
方案1好像只有在InnoDB格式下能用
08/13 15:52, 11F

08/13 15:53, , 12F
Navicat 8 目前沒看到哪裡會顯示ERD?!
08/13 15:53, 12F

08/13 16:04, , 13F
我是用 microOLAP
08/13 16:04, 13F

08/13 18:05, , 14F
我覺得,分五次刪,或者一次刪,mysql還是都要去刪5筆資
08/13 18:05, 14F

08/13 18:07, , 15F
料,其他做五次跟做一次,差別應該不會太大.
08/13 18:07, 15F

08/13 18:07, , 16F
然後,你的tourId有建索引嗎?
08/13 18:07, 16F

08/14 00:25, , 17F
只要傳一次東西給db, 小站是沒差啦, 大站就科科
08/14 00:25, 17F
文章代碼(AID): #1AWuFipG (PHP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 4 篇):
文章代碼(AID): #1AWuFipG (PHP)