SQL中Delete語句表名不能用別名?!

2021-07-03 20:11:25 字數 445 閱讀 8710

昨天發現程式中資料分析的結果不對,重新進行分析後,原資料仍在,有值的字段被累計。心說,不對啊,是重新生成記錄後才分析的啊。難道忘了delete了?查**,發現有刪除語句。於是在查詢分析器中執行,報錯。反覆試幾次,明白了,delete from不認表名別名!回頭想下,當初程式改完後主要是在oracle中測的,sqlserver/mysql一直沒細測。

之所以要用別名,是因為where條件中需要用到子查詢寫一些條件,下面不寫那麼複雜,僅說明一下問題。

結論:(oracle適用)    delete from tablea a where a.field1=10

(sqlserver/mysql適用)    delete tablea from tablea a where a.field1=10

(ora/sql均適用)   delete  from tablea where tablea.field1=10

在mysql中修改表名的sql語句

在使用mysql時,經常遇到表名不符合規範或標準,但是表裡已經有大量的資料了,如何保留資料,只更改表名呢?可以通過建乙個相同的表結構的表,把原來的資料匯入到新錶中,但是這樣視乎很麻煩。能否簡單使用乙個sql語句就搞定呢?當然可以,mysql5.0下我們使用這樣的sql語句就可以了。alter tab...

在mysql中修改表名的sql語句

在使用mysql時,經常遇到表名不符合規範或標準,但是表裡已經有大量的資料了,如何保留資料,只更改表名呢?可以通過建乙個相同的表結構的表,把原來的資料匯入到新錶中,但是這樣視乎很麻煩。能否簡單使用乙個sql語句就搞定呢?當然可以,mysql5.0下我們使用這樣的sql語句就可以了。alter tab...

在MySQL中修改表名的SQL語句

在使用mysql時,經常遇到表名不符合規範或標準,但是表裡已經有大量的資料了,如何保留資料,只更改表名呢?可以通過建乙個相同的表結構的表,把原來的資料匯入到新錶中,但是這樣視乎很麻煩。能否簡單使用乙個sql語句就搞定呢?當然可以,mysql 5.0下我們使用這樣的sql語句就可以了。alter ta...