|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
这能找出所有错误的99.99%。它不能找出的是仅仅涉及数据文件的损坏(这很不常见)。如果你想要检查一张表,你通常应该没有选项地运行myisamchk或用-s或--silent选项的任何一个。每位SQLServer开辟员都有本人的首选操纵办法。我的办法叫做份子查询。这些是由原子查询组合起来的查询,经由过程它们我能够处置一个表格。将原子组合起来,能够创建份子。固然也会无限制(化学家所称的化合价),但一样平常来讲,这个道理仍是合用的。在本文中,我将切磋这类战略的几种变更。我从最基础的内容入手下手(即最具体的内容),然后慢慢深化。为让你懂得这类办法的天真性,我会在分歧条理利用几种技能。(告诫:这并非独一的办理办法,我只是在会商一些可行的选择。)
我从广泛利用的数据库Northwind入手下手(固然为了保存原貌,我把它复制到Northwind_New中,实践这才是我利用的数据库。)在我的拷贝中,我做出这些主要的修正。
我删除复合主键,增添一个叫做PK的新列,并将其设为Identity列。
我增添了一个称作ExtendedAmount的盘算列。
以下为援用的内容:
USE[Northwind_New]
GO
/******Object:Table[dbo].[OrderDetails_New]
ScriptDate:08/23/200616:15:42******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
CREATETABLE[dbo].[OrderDetails_New](
[OrderDetailID][int]IDENTITY(1,1)NOTNULL,
[OrderID][int]NOTNULL,
[ProductID][int]NOTNULL,
[UnitPrice][money]NOTNULL,
[Quantity][smallint]NOTNULL,
[Discount][real]NOTNULL,
[ExtendedAmount]AS([Quantity]*[UnitPrice]*(1-[Discount])),
CONSTRAINT[PK_OrderDetails_New]PRIMARYKEYCLUSTERED
(
[OrderDetailID]ASC
)ON[PRIMARY]
)ON[PRIMARY]
列表A
列表A中包括创建这个新表格的新建(Create)语句。我用这个命令将它和值从原始表格中敏捷移植出来:
INSERTINTO[Northwind_New].[dbo].[OrderDetails_New]
SELECT*FROM[Northwind_New].[dbo].[OrderDetails]
既然我有一个多行的表格,是时分入手下手实行了。(一旦新列ExtendedAmount被盘算,其值会主动移植。)最后,我想用OrderID盘算ExtendedAmount列的总数。我创建一个视图,如列表B所示。
以下为援用的内容:
USE[Northwind_New]
GO
/******Object:?View[dbo].
[OrderDetailsSumByOrderID_vue]ScriptDate:08/23/200616:31:18******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
CREATEVIEW[dbo].[OrderDetailsSumByOrderID_vue]
AS
SELECTTOP100PERCENTOrderID,
SUM(ExtendedAmount)ASTotalAmount
FROM?dbo.OrderDetails_New
GROUPBYOrderID
ORDERBYOrderID
列表B
我每行失掉一个OrderID,ExtendedAmount的列数失掉总计。(称之为OrderAmount,将航运,税收等相加失掉OrderTotal)。
mysql的prepare其实是本地PHP客户端模拟的,并没有根据你mysql的设置做字符集的调整。应该交与mysqlserver端做prepare,同时得调用mysql_set_character_set去操作,server才会按照字符集去做转义。 |
|