CREATE TABLE [House_RoomStructure] (
  [ID] INTEGER PRIMARY KEY, 
  [ProgrammID] INTEGER NOT NULL CONSTRAINT [ProgrammID] REFERENCES [Programm_ID]([ID]), 
  [RoomType] INTEGER, 
  [RoomName] VARCHAR(50), 
  [RoomLength] FLOAT, 
  [RoomWidth] FLOAT, 
  [RoomHeight] FLOAT, 
  [Description] VARCHAR(255));
第三行是什么意思呐。。谢谢各位  为空的后面可以不加 NULL么?

解决方案 »

  1.   

     [ProgrammID] INTEGER NOT NULL CONSTRAINT [ProgrammID] REFERENCES [Programm_ID]([ID])
    具体哪个地方不明白?
    约束名[ProgrammID
    参照[Programm_ID]表的ID字段
      

  2.   

    这个是MS SQL的语法,建议先看下MYSQL官方免费手册中的语法。或者一般的数据库教材上都会有关于这个约束说明的解释。
      

  3.   

    可以不加,默认即是允许为 NULL
      

  4.   

    [ProgrammID] INTEGER NOT NULL CONSTRAINT [ProgrammID] REFERENCES [Programm_ID]([ID]),
    约束名为ProgrammID 参照完整性表programm_id中的ID
      

  5.   

    主要是 CONSTRAINT 后面的内容不太懂
      

  6.   

    CONSTRAINT [ProgrammID](约束名)
     REFERENCES [Programm_ID]([ID]):参照[Programm_ID]表的ID字段 
      

  7.   


    那ALTER TABLE posts ADD CONSTRAINT fk_posts_users FOREIGN KEY (uid) REFERENCES users(uid); 这就跟上面那句是一个意思吗?