php - 从 mysql 查询转换为 mssql 查询

标签 php mysql sql-server sql-server-2008 codeigniter

我正在尝试使用 codeigniter 和 MS-SQL。我必须使用 ci_sessions 表自动将 session 存储在 mssql 服务器中。 codeigniter在用户指南中提供了ci_sessions表sql如下:

CREATE TABLE IF NOT EXISTS  `ci_sessions` (
    session_id varchar(40) DEFAULT '0' NOT NULL,
    ip_address varchar(16) DEFAULT '0' NOT NULL,
    user_agent varchar(120) NOT NULL,
    last_activity int(10) unsigned DEFAULT 0 NOT NULL,
    user_data text NOT NULL,
    PRIMARY KEY (session_id),
    KEY `last_activity_idx` (`last_activity`)
);

。在这里,我必须在 MS SQL Server 中创建相同的表。 MS SQL SERVER 以及下面的验证码 sql 表对应的 sql 是什么:

CREATE TABLE captcha (
    captcha_id bigint(13) unsigned NOT NULL auto_increment,
    captcha_time int(10) unsigned NOT NULL,
    ip_address varchar(16) default '0' NOT NULL,
    word varchar(20) NOT NULL,
    PRIMARY KEY `captcha_id` (`captcha_id`),
    KEY `word` (`word`)
);

如何使用 SQL 查询在 MS SQL SERVER 中创建与上述 ​​mysql 查询相同的表

最佳答案

这是第一个表的示例 -

CREATE TABLE dbo.ci_sessions (
    session_id varchar(40) DEFAULT '0' NOT NULL,
    ip_address varchar(16) DEFAULT '0' NOT NULL,
    user_agent varchar(120) NOT NULL,
    last_activity int DEFAULT 0 NOT NULL,
    user_data varchar(max) NOT NULL, -- use varchar(max) instead of MySQL TEXT data type
    PRIMARY KEY (session_id)
)
GO

-- Simalate MySQL 'UNSIGNED' field option
ALTER TABLE dbo.ci_sessions ADD CONSTRAINT last_activity_unsigned
  CHECK (last_activity >= 0)
GO

CREATE INDEX last_activity_idx
  ON dbo.ci_sessions (last_activity)

使用您的架构更改“dbo”架构。

看看这些引用资料 - CHECK Constraints , Data Types .

关于php - 从 mysql 查询转换为 mssql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9562728/

相关文章:

php - 如何在php中实现倒计时

php - Laravel 查询 Or 运算符优先级

php - Composer 自动加载 - 未找到类异常

java - 从列中搜索以获取各种数据的计数

java - 在 Tomcat 上配置 SQL Server 连接池

sql-server - 为什么 SSIS 导入 8500 条记录所需的时间比通过 SSMS 手动导入的时间要长得多?

尽管有聚集索引,SQL Server 仍使用非聚集索引

Symfony 2 中的 PHP 5.3 命名空间

php - 在 MYSQL 中使用 IN 会导致 PHP 中的变量出现问题

mysql - 是否可以通过主键合并两个表?