mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-04 04:46:15 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			136 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			136 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
# 
 | 
						|
# Basic syntax related to primary keys 
 | 
						|
#
 | 
						|
 | 
						|
--source have_engine.inc
 | 
						|
 | 
						|
--disable_warnings
 | 
						|
DROP TABLE IF EXISTS t1;
 | 
						|
--enable_warnings
 | 
						|
 | 
						|
let $create_definition =
 | 
						|
  a $int_indexed_col PRIMARY KEY,
 | 
						|
  b $char_col
 | 
						|
;
 | 
						|
--source create_table.inc
 | 
						|
if ($mysql_errname)
 | 
						|
{
 | 
						|
  --let $my_last_stmt =  $create_statement
 | 
						|
  --let $functionality = PRIMARY KEY
 | 
						|
  --source unexpected_result.inc
 | 
						|
}
 | 
						|
if (!$mysql_errname)
 | 
						|
{
 | 
						|
  --replace_column 6 # 7 # 10 # 11 #
 | 
						|
  SHOW KEYS IN t1;
 | 
						|
 | 
						|
  INSERT INTO t1 (a,b) VALUES (1,'a'),(2,'b');
 | 
						|
  --let $error_codes = ER_DUP_ENTRY,ER_DUP_KEY
 | 
						|
  INSERT INTO t1 (a,b) VALUES (1,'c');
 | 
						|
  --source check_errors.inc
 | 
						|
 | 
						|
  DROP TABLE t1;
 | 
						|
}
 | 
						|
 | 
						|
--let $error_codes = ER_MULTIPLE_PRI_KEY
 | 
						|
let $create_definition = 
 | 
						|
  a $int_indexed_col PRIMARY KEY,
 | 
						|
  b $char_indexed_col PRIMARY KEY
 | 
						|
;
 | 
						|
--source create_table.inc
 | 
						|
if ($mysql_errname != ER_MULTIPLE_PRI_KEY)
 | 
						|
{
 | 
						|
  --let $my_last_stmt = $create_statement
 | 
						|
  --let $functionality = PRIMARY KEY
 | 
						|
  --source unexpected_result.inc
 | 
						|
}
 | 
						|
 | 
						|
let $create_definition = 
 | 
						|
  a $int_indexed_col,
 | 
						|
  b $char_indexed_col,
 | 
						|
  PRIMARY KEY (a,b)
 | 
						|
;
 | 
						|
--source create_table.inc
 | 
						|
if ($mysql_errname)
 | 
						|
{
 | 
						|
  --let $my_last_stmt =  $create_statement
 | 
						|
  --let $functionality = Multi-part keys
 | 
						|
  --source unexpected_result.inc
 | 
						|
}
 | 
						|
if (!$mysql_errname)
 | 
						|
{
 | 
						|
  --replace_column 6 # 7 # 10 # 11 #
 | 
						|
  SHOW INDEX IN t1;
 | 
						|
  INSERT INTO t1 (a,b) VALUES (1,'a'),(1,'b'),(2,'a'),(2,'b');
 | 
						|
  --let $error_codes = ER_DUP_ENTRY,ER_DUP_KEY
 | 
						|
  INSERT INTO t1 (a,b) VALUES (1,'b');
 | 
						|
  --source check_errors.inc
 | 
						|
  DROP TABLE t1;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
--let $continue = 1
 | 
						|
--source have_default_index.inc
 | 
						|
if ($have_default_index)
 | 
						|
{
 | 
						|
  # KEY in a column definition means PK!
 | 
						|
  let $create_definition = 
 | 
						|
    a $int_indexed_col KEY,
 | 
						|
    b $char_indexed_col,
 | 
						|
    $default_index (b)
 | 
						|
  ;
 | 
						|
  --source create_table.inc
 | 
						|
  if ($mysql_errname)
 | 
						|
  {
 | 
						|
    --let $my_last_stmt =  $create_statement
 | 
						|
    --let $functionality = Multiple keys or PK or keys on CHAR columns
 | 
						|
    --source unexpected_result.inc
 | 
						|
  }
 | 
						|
  if (!$mysql_errname)
 | 
						|
  {
 | 
						|
    --replace_column 6 # 7 # 10 # 11 #
 | 
						|
    SHOW INDEX IN t1;
 | 
						|
    DROP TABLE t1;
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
let $create_definition =
 | 
						|
  a $int_indexed_col,
 | 
						|
  b $char_indexed_col PRIMARY KEY
 | 
						|
;
 | 
						|
--source create_table.inc
 | 
						|
if ($mysql_errname)
 | 
						|
{
 | 
						|
  --let $my_last_stmt =  $create_statement
 | 
						|
  --source unexpected_result.inc
 | 
						|
}
 | 
						|
if (!$mysql_errname)
 | 
						|
{
 | 
						|
 | 
						|
  --replace_column 6 # 7 # 10 # 11 #
 | 
						|
  SHOW INDEX IN t1;
 | 
						|
 | 
						|
  --let $alter_definition = DROP INDEX `PRIMARY`
 | 
						|
  --source alter_table.inc
 | 
						|
  if ($mysql_errname)
 | 
						|
  {
 | 
						|
    --let $my_last_stmt =  $alter_statement
 | 
						|
    --let $functionality = ALTER TABLE
 | 
						|
    --source unexpected_result.inc
 | 
						|
  }
 | 
						|
  if (!$mysql_errname)
 | 
						|
  {
 | 
						|
    --let $alter_definition = ADD CONSTRAINT PRIMARY KEY pk (a)
 | 
						|
    --source alter_table.inc
 | 
						|
    --source mask_engine.inc
 | 
						|
    --replace_column 6 # 7 # 10 # 11 #
 | 
						|
    SHOW KEYS IN t1;
 | 
						|
    --let $alter_definition = DROP PRIMARY KEY
 | 
						|
    --source alter_table.inc
 | 
						|
  }
 | 
						|
 | 
						|
  DROP TABLE t1;
 | 
						|
}
 | 
						|
 | 
						|
--source cleanup_engine.inc
 | 
						|
 |