2013-03-28 35 views
3

我有一個大的數據庫瓦特/一堆表和列混合一些允許空,而其他不允許空..批量設置所有的MySQL列的所有NULL

我剛剛決定以規範我的方法和用途NULL爲所有空字段等..因此,我需要在所有我的表中設置所有列允許NULL(除了初選的課程)

我可以甩一個PHP代碼來循環這個,但我想知道是否有一個快速的方式來通過SQL?

問候

+0

所以,你要求'ALTER'或'UPDATE'? – hjpotter92 2013-03-28 07:34:31

+0

一批ALTER ..需要設置的所有現有的列允許空.. – BrownChiLD 2013-03-28 08:54:21

回答

0

您可以使用元數據從系統表,以確定您的表,列,類型等再利用,動態構建包含您的UPDATE SQL字符串,在以concatented表和列名它。然後執行。

我最近張貼允許OP通過尋找那些包含一個特定的值列搜索的解決方案。代替任何人提供更完整的答案,這應該給你一些關於如何解決這個問題的線索(或者至少是研究什麼)。你需要提供表名,或者加入他們,然後做一些類似的事情,除非你要檢查類型而不是值(並且你構建的動態SQL會構建更新,而不是選擇)。

我會在一個位置,以幫助您與您的具體方案進一步在幾個小時...如果,你已經受夠了這個(或其他答案)沒有運氣然後我會提供更多的東西,然後完成。

編輯:剛剛意識到你已經把它標記爲mySql ...我的解決方案是用於MS SQL Server。校長應該是相同的(因此我會留下這個答案,因爲我認爲你會發現它有用),假設MySql允許你查詢它的元數據,並執行動態生成的SQL命令。

SQL Server - Select columns that meet certain conditions?

+0

感謝..雖然這似乎更復雜不僅僅是編碼了一個PHP抓取/環路上的所有表/列... – BrownChiLD 2013-03-28 08:55:00

+0

@brownChiLD,公平的電話,我不要並不是不同意。但是,你會接受「不」作爲你的問題的答案「_i想知道是否有一種快速的方法來通過SQL?_」:-)。但嚴重的是,記住這個問題將會被未來的其他人看到,他們可能通過例如谷歌來到這裏,想知道如何在SQL中做這個或者類似的事情,例如因爲它們有一些約束意味着它必須在SQL中完成,所以這個答案在這方面是有價值的。在mySql中使用這種方法可能比我的MSSQL例子更直接。完成後請使用您的PHP解決方案回覆? – Sepster 2013-03-28 11:12:55

+0

哈哈..好點。任何我爲此鞭策PHP的人,但我意識到在所有桌子上使用NULL都不是一個好主意......所以我放棄了轉換哈哈。但是,這是一個「很高興知道」的東西..所以非常感謝! – BrownChiLD 2013-03-29 02:21:55

相關問題